Visual Studio: настраиваемые переменные проекта

Visual studio предоставляет множество переменных $, которые можно использовать внутри IDE, например $(SolutionDir). Как создать собственные переменные, такие как $(MY_INCLUDES_DIR) (которые могут быть заданы пользователями проекта, чтобы указать на их заголовки)? Возможно ли это?

Ответы

Ответ 1

Вы можете создавать переменные среды в Project Properties → Debugging- > Environment. Несмотря на то, что они не отображаются в списке макросов (поскольку они являются обычными, а не встроенными), вы все равно можете их использовать.

Ответ 2

Я знаю, что это работает для VS 2010:

Если у вас есть листы свойств, в дереве "Общие свойства" есть раздел "Макросы пользователя". Вы можете создать свой собственный макрос $(MyNamedVariable) и даже определить его в терминах других $(SomeExistingMacro). Если вы еще не играли с листами свойств, найдите "Property Manager" в меню просмотра, и это позволит вам создавать и редактировать их.

Любая конфигурация проекта, которая наследует лист свойств, увидит ваш макрос, как если бы VS определил его сам, то есть он будет отображаться в списке макросов. Пользователь вашего проекта может просто перейти к некоторому базовому листу свойств и отредактировать MY_INCLUDES_DIR (чтобы использовать ваш пример) в одном месте.

Надеюсь, что это поможет.

(Как создать листы свойств? См. http://msdn.microsoft.com/en-us/library/5k4a0033.aspx. View- > Other Windows- > Property Manger)

Ответ 3

Я создал таблицу стилей свойств, чтобы указать, какие 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>

Ответ 5

Вы можете выполнить любое решение, как описано ниже.

  • Задайте переменную окружения в пакетном файле. Создайте пакетный файл и вставьте код, как показано ниже:

    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, дважды щелкнув этот файл. Преимущество такого подхода состоит в том, что все проекты могут использовать одну и ту же переменную среды.

  1. Определите тег xml в файле проекта Visual Studio в PropertyGroup. Одна ранее существовавшая PropertyGroup, которую вы можете использовать для этой цели, - это та, которая имеет метку "UserMacros", которая по умолчанию пуста.
<PropertyGroup Label="UserMacros">
    <!-- Add the following line. -->
    <MY_INCLUDES_DIR>D:\MyIncludes\</MY_INCLUDES_DIR>
</PropertyGroup>
  1. Создайте переменную системной среды с именем MY_INCLUDES_DIR.

  2. Перейдите в Вид (меню) → Property Manager. Выберите проект, выберите платформу и конфигурацию, щелкните правой кнопкой мыши Microsoft.Cpp.x64.user, затем перейдите на вкладку Макросы пользователя и нажмите Добавить макросы..

Если вы выберете вариант 1, 2, 3 или 4, вы можете обратиться к $(MY_INCLUDES_DIR) в файлах проекта Visual Studio.

Ответ 6

Просто нужно было сделать то же самое. У меня есть три решения, которые включают общий проект. Каждому из решений необходимо создать общий проект с несколько разными настройками.

Обнаружено, что это можно легко сделать, используя списки свойств проекта. Создайте файл Property Sheet для параметров, которые вы хотите изменить, и сохраните их в каталоге решений. Откройте файл Project в текстовом редакторе (или в VS с Open With\Text Code Text Editor) и найдите путь к каталогу Property Sheet. Измените его так, чтобы используемый путь был "$ (SolutionDir)".

Теперь у вас есть проект Visual Studio, который загружает конкретные листы свойств конкретных решений.