Как определить глобальные настройки в решении в VC ++?

Метод .filter() можно использовать вместо .some() для получения списка элементов, включенных в строку message. Это, в свою очередь, может быть использовано для отображения хобби в сообщении.

Логика будет включать дополнительную проверку, чтобы убедиться, что длина отфильтрованного списка не пуста, прежде чем записать результат на консоль:

var hobby = ["sport", "art", "music"];
var message = "I love sport!";

// Use .filter instead of .some
var result = hobby.filter(el => message.includes(el));

// If result not empty, log the result to console
if (result.length > 0) {
  console.log("a hobby or hobbies are included:", result);

  // To find matching indicies
  const matchingIndicies = hobby
    .map((str, index) => ({ str, index }))
    .filter((item) => message.includes(item.str))
    .map((item) => (item.str + ' at index ' + item.index));
 
  console.log("matching indicies:", matchingIndicies)
  // tell me which hobby or hobbies here
}

12
задан abatishchev 23 May 2018 в 10:00
поделиться

5 ответов

Мы используем окна свойств для выполнения этого. Единственное окно свойств может быть присвоено всем проектам в решении. С тех пор можно изменить настройки в том одном окне свойств, и оно будет влиять на все проекты.

Усовершенствованная подсказка: Мы на самом деле используем несколько окон свойств, (например, один для целевых типов выпуска, один для типов целевого объекта отладки). Подсказка - то, что порядок очень важен. При редактировании файлов проекта вручную затем, последнее окно свойств переопределит настройки в предыдущих окнах свойств в списке. Если Вы редактируете в GUI, то TOP каждый переопределяет тех ниже его.

15
ответ дан 26 October 2019 в 10:47
поделиться

Как другие предположили, окна свойств могут сделать то, что Вы хотите. Прием должен использовать InheritedPropertySheets поскольку Вы использовали бы #include в C++.Примечание: XML немного отличается для файлов проекта и файлов окна свойств. Вот изобретенный и упрощенный пример двух проектов (prjA.vcproj и prjB.vcproj) включая то же окно свойств (sln.vsprops) который самостоятельно включает другого (strict.vsprops):

strict.vsprops

<VisualStudioPropertySheet ...>
    <Tool Name="VCCLCompilerTool" WarningLevel="3" WarnAsError="true"/>
</VisualStudioPropertySheet>

sln.vsprops

<VisualStudioPropertySheet ... InheritedPropertySheets=".\strict.vsprops">
    <Tool
        Name="VCCLCompilerTool"
        PreprocessorDefinitions="NOMINMAX=1"
        RuntimeTypeInfo="true"
    />
</VisualStudioPropertySheet>

prjA.vcproj

<VisualStudioProject ...>
    <Configurations>
        <Configuration ... InheritedPropertySheets=".\sln.vsprops">
        </Configuration>
    </Configurations>
    ...
</VisualStudioProject>

prjB.vcproj

<VisualStudioProject ...>
    <Configurations>
        <Configuration ... InheritedPropertySheets=".\sln.vsprops">
        </Configuration>
    </Configurations>
    ...
</VisualStudioProject>

Можно также найти этот вопрос и его ответы полезными.

2
ответ дан 26 October 2019 в 10:47
поделиться

Возможно, Вы могли добавить файл MSBuild к своему решению, в котором Вы определяете много общих свойств и затем <Импорта> что файл во все Ваши реальные проекты?

Таким образом, в Ваших "настройках" файл MSBuild Вы определяете много свойств:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WinUnitIncludeDir>C:\Includes\WinUnit</WinUnitIncludeDir>
        <!-- Other shared properties go here -->
    </PropertyGroup>
</Project>

Из Ваших реальных проектов можно затем обратиться к этому:

<Project ...>
    ...
    <Import Project="path/to/settings.msbuild" />
    ...
    <Configurations>
        <Configuration ...>
            <Tool Name="VCCLCompilerTool"
                  ...
                  AdditionalIncludeDirectories="$(WinUnitIncludeDir)"
                  ... />
            ...
        ...
    ...
</Project>
1
ответ дан 26 October 2019 в 10:47
поделиться

Я искал точно то же самое некоторое время назад, но не нашел точно, что я хотел.

Единственной вещью, которая могла бы быть близко к этой функции, являются Окна свойств. Это не точно глобально, поскольку это принадлежит проекту и используется другими.

0
ответ дан 26 October 2019 в 10:47
поделиться

As suggested, you should look at Property Sheets (aka .vsprops files).
I wrote a very short introduction to this feature here.

1
ответ дан 26 October 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: