vcproj / vsprops的可选环境变量

时间:2010-01-04 21:38:42

标签: visual-studio environment-variables vsprops vcbuild

有没有办法在项目文件(有或没有vsprops)中创建环境变量替换,如果找不到该变量,则用默认值替换?我还没有找到任何办法,因为一切似乎都覆盖了环境变量。

编辑:我需要这个来处理属性,而不是环境变量。具体来说,可以使用指定目标构建目录的环境变量从另一个源调用devenv。如果该变量不存在(可能是因为devenv只是用作IDE),那么它应该使用默认值。

我已经为MSBuild工作了;我现在需要它为VCBuild工作。

3 个答案:

答案 0 :(得分:1)

我不认为这可以在项目级别完成:据我所知,vc项目文件没有针对逻辑语句进行解析(除了可以使用批处理文件语法的构建事件,但那是因为它们是运行的作为批处理文件)。

您唯一能做的就是创建一个具有默认变量的全局环境变量。如果调用devenv的环境也指定它,它将被覆盖。

环境:

MYVSOUTDIR="c:/temp"

vcproj / vsprops:

OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)"

在批处理文件中覆盖它:

set MYVSOUTDIR="d:/mytemp"
devenv

答案 1 :(得分:0)

嗯,显然我不知道如何在这里格式化XML

 <PropertyGroup Condition=" '$(your_var)' == '' ">
  <your_var>default</your_var>
 </PropertyGroup>

答案 2 :(得分:0)

我知道它在技术上超出了原始问题的范围,但是我已经通过编写一个加载项来解决这个问题,该加载项将检测环境变量是否已设置,如果没有,则构造变量的默认值并存储它。这不是最优雅的解决方案,但它确实有效。