Visual Studio:自定义项目变量

ins*_*pid 23 visual-studio

Visual Studio提供了很多可以在IDE中使用的$变量,例如$(SolutionDir).如何创建自己的变量,例如$(MY_INCLUDES_DIR)(可以由项目用户设置指向其标题)?它甚至可能吗?

小智 16

我知道这适用于VS 2010:

如果您有属性表,则在"公共属性"树下有一个名为"用户宏"的部分.您可以创建自己的$(MyNamedVariable)宏,甚至可以用其他$(SomeExistingMacro)来定义它.如果您之前没有使用过属性表,请在视图菜单下查找"属性管理器",它将允许您创建和编辑它们.

任何继承属性表的项目配置都会看到你的宏,好像VS已经自己定义了它,即它将显示在宏列表中.您的项目的用户可以只去一些基本属性表,并在一个地方编辑MY_INCLUDES_DIR(以使用您的示例).

希望这可以帮助.

(如何创建属性表?请参阅http://msdn.microsoft.com/en-us/library/5k4a0033.aspx.查看- >其他Windows-> Property Manger)


Nat*_*man 13

您可以在Project Properties-> Debugging-> Environment中创建环境变量.即使它们没有显示在宏列表中(因为它们是自定义的而不是内置的),您仍然可以使用它们.


Nic*_*ick 7

我创建了一个属性样式表,以指定哪些 Python(和 SCons),现在在我的 vcxproj 中,我可以通过将 $(PythonIncludeDir) 添加到附加包含属性来包含 Python 包含目录。

<?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>
Run Code Online (Sandbox Code Playgroud)


Sag*_*pta 5

您可以按照如下所述的任何解决方案进行操作。

  1. 在批处理文件中设置环境变量。创建一个批处理文件并插入如下代码:

    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. 在 PropertyGroup 内的 Visual Studio 项目文件中定义 xml 标记。您可以为此目的使用一个预先存在的 PropertyGroup,其标签为“UserMacros”,默认情况下为空。
<PropertyGroup Label="UserMacros">
    <!-- Add the following line. -->
    <MY_INCLUDES_DIR>D:\MyIncludes\</MY_INCLUDES_DIR>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
  1. 创建一个名为 的系统环境变量MY_INCLUDES_DIR

  2. 转到查看(菜单栏)->属性管理器。选择项目,选择平台和配置,右键单击Microsoft.Cpp.x64.user然后转到User Macros选项卡并单击Add Macros

无论您选择选项 1、2、3 还是 4,您都可以$(MY_INCLUDES_DIR)在 Visual Studio 项目文件中进行引用。