通过设置环境变量来覆盖用户宏

时间:2016-06-19 10:31:26

标签: visual-studio-2015

我将库位置定义为用户宏,这很好用。 但是,我需要一种方法来通过环境变量的值覆盖此定义。 (如果未定义此环境变量,则应使用所述预定义的用户宏值。)

有办法吗?

1 个答案:

答案 0 :(得分:1)

有一种方法,但您必须直接编辑项目文件,例如通过解决方案资源管理器中项目的“卸载”上下文菜单,然后在VS中打开它(也在上下文菜单中,我不记得确切的名称)。

项目文件是MSBuild(XML)文件。环境变量可以通过$(<Name>)直接作为属性访问。用户宏值也会在属性中结束。设置它们之后,可以覆盖它们的值,这通常发生在PropertyGroup元素内。

假设您的用户宏为FooDir。然后你会在项目文件中找到类似的东西

<PropertyGroup>
  ...
  <FooDir>...</FooDir>
  ...
</PropertyGroup>

如果您现在添加

<PropertyGroup>
  <FooDir Condition="'$(FOO_DIR)' != ''">$(FOO_DIR)</FooDir>
</PropertyGroup>

之后,它将获取环境变量FOO_DIR作为默认值,以覆盖用户宏(如果它不为空)。

请参阅https://msdn.microsoft.com/en-us/library/ms171459.aspx