Ответ 1
Вы можете создавать переменные среды в Project Properties → Debugging- > Environment. Несмотря на то, что они не отображаются в списке макросов (поскольку они являются обычными, а не встроенными), вы все равно можете их использовать.
Visual studio предоставляет множество переменных $, которые можно использовать внутри IDE, например $(SolutionDir). Как создать собственные переменные, такие как $(MY_INCLUDES_DIR) (которые могут быть заданы пользователями проекта, чтобы указать на их заголовки)? Возможно ли это?
Вы можете создавать переменные среды в Project Properties → Debugging- > Environment. Несмотря на то, что они не отображаются в списке макросов (поскольку они являются обычными, а не встроенными), вы все равно можете их использовать.
Я знаю, что это работает для VS 2010:
Если у вас есть листы свойств, в дереве "Общие свойства" есть раздел "Макросы пользователя". Вы можете создать свой собственный макрос $(MyNamedVariable) и даже определить его в терминах других $(SomeExistingMacro). Если вы еще не играли с листами свойств, найдите "Property Manager" в меню просмотра, и это позволит вам создавать и редактировать их.
Любая конфигурация проекта, которая наследует лист свойств, увидит ваш макрос, как если бы VS определил его сам, то есть он будет отображаться в списке макросов. Пользователь вашего проекта может просто перейти к некоторому базовому листу свойств и отредактировать MY_INCLUDES_DIR (чтобы использовать ваш пример) в одном месте.
Надеюсь, что это поможет.
(Как создать листы свойств? См. http://msdn.microsoft.com/en-us/library/5k4a0033.aspx. View- > Other Windows- > Property Manger)
Я создал таблицу стилей свойств, чтобы указать, какие Python (и SCons), теперь в моем vcxproj, я могу включить в дистрибутив Python include, добавив $(PythonIncludeDir) к дополнительному включению свойства.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<PythonDir>C:\Python27_64</PythonDir>
<PythonExe>$(PythonDir)\python.exe</PythonExe>
<PythonIncludeDir>$(PythonDir)\include</PythonIncludeDir>
<PythonLibDir>$(PythonDir)\libs</PythonLibDir>
<SCons>$(PythonExe) $(PythonDir)\Scripts\scons.py</SCons>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup>
<BuildMacro Include="PythonDir">
<Value>$(PythonDir)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
<BuildMacro Include="PythonExe">
<Value>$(PythonExe)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
<BuildMacro Include="PythonIncludeDir">
<Value>$(PythonIncludeDir)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
<BuildMacro Include="PythonLibDir">
<Value>$(PythonLibDir)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
<BuildMacro Include="SCons">
<Value>$(SCons)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
</ItemGroup>
</Project>
Здесь есть пошаговое объяснение: https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros
Вы можете выполнить любое решение, как описано ниже.
Задайте переменную окружения в пакетном файле. Создайте пакетный файл и вставьте код, как показано ниже:
set MY_INCLUDES_DIR=D:\MyIncludes
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" D:\MySolution.sln
Затем запустите решение Visual Studio, дважды щелкнув этот файл. Преимущество такого подхода состоит в том, что все проекты могут использовать одну и ту же переменную среды.
<PropertyGroup Label="UserMacros">
<!-- Add the following line. -->
<MY_INCLUDES_DIR>D:\MyIncludes\</MY_INCLUDES_DIR>
</PropertyGroup>
Создайте переменную системной среды с именем MY_INCLUDES_DIR
.
Перейдите в Вид (меню) → Property Manager. Выберите проект, выберите платформу и конфигурацию, щелкните правой кнопкой мыши Microsoft.Cpp.x64.user, затем перейдите на вкладку Макросы пользователя и нажмите Добавить макросы..
Если вы выберете вариант 1, 2, 3 или 4, вы можете обратиться к $(MY_INCLUDES_DIR)
в файлах проекта Visual Studio.
Просто нужно было сделать то же самое. У меня есть три решения, которые включают общий проект. Каждому из решений необходимо создать общий проект с несколько разными настройками.
Обнаружено, что это можно легко сделать, используя списки свойств проекта. Создайте файл Property Sheet для параметров, которые вы хотите изменить, и сохраните их в каталоге решений. Откройте файл Project в текстовом редакторе (или в VS с Open With\Text Code Text Editor) и найдите путь к каталогу Property Sheet. Измените его так, чтобы используемый путь был "$ (SolutionDir)".
Теперь у вас есть проект Visual Studio, который загружает конкретные листы свойств конкретных решений.