Visual Studio提供了许多可以在IDE中使用的$变量,例如$(SolutionDir)。如何创建自己的变量,例如$(MY_INCLUDES_DIR)(可以由项目用户设置指向其标题)?它甚至可能吗?
答案 0 :(得分:14)
我知道这适用于VS 2010:
如果您有属性表,则在“公共属性”树下有一个名为“用户宏”的部分。您可以创建自己的$( MyNamedVariable )宏,甚至可以使用其他$( SomeExistingMacro )来定义它。如果您之前没有使用过属性表,请查看视图菜单下的“属性管理器”,它将允许您创建和编辑它们。
任何继承属性表的项目配置都会看到你的宏,好像VS已经自己定义了它,即它会显示在宏列表中。您的项目的用户可以只去一些基本属性表,并在一个地方编辑MY_INCLUDES_DIR(以使用您的示例)。
希望这有帮助。
(如何创建属性表?请参阅http://msdn.microsoft.com/en-us/library/5k4a0033.aspx。查看 - >其他Windows-> Property Manger)
答案 1 :(得分:13)
您可以在Project Properties-> Debugging-> Environment中创建环境变量。即使它们没有显示在宏列表中(因为它们是自定义的而不是内置的),您仍然可以使用它们。
答案 2 :(得分:3)
我创建了一个属性样式表,以指定哪个Python(和SCons),现在在我的vcxproj中,我可以通过将$(PythonIncludeDir)添加到其他包含属性来包含Python include dir。
<?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>
答案 3 :(得分:3)
您可以按照以下说明执行任何解决方案。
在批处理文件中设置环境变量。创建批处理文件并插入如下代码:
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
的系统环境变量。
转到查看(菜单栏) - &gt; 物业经理。 选择项目,选择平台和配置,右键单击 Microsoft.Cpp.x64.user ,然后转到用户宏选项卡,然后单击添加宏
无论选择选项1,2,3还是4,都可以在Visual Studio项目文件中引用$(MY_INCLUDES_DIR)
。
答案 4 :(得分:0)
只需要做同样的事情。我有三个解决方案,包括一个共同的项目。每个解决方案都需要使用稍微不同的设置来构建公共项目。
发现这可以使用Project Property Sheets轻松完成。为要更改的设置创建属性表文件,并将其保存在解决方案目录中。在文本编辑器中打开Project文件(或在VS中使用Open With \ Source Code Text Editor),找到属性表的目录路径。修改它以便使用的路径为&#39; $(SolutionDir)&#39;。
您现在有一个Visual Studio项目,可以加载特定于解决方案的属性表。