有没有办法在项目文件(有或没有vsprops)中创建环境变量替换,如果找不到该变量,则用默认值替换?我还没有找到任何办法,因为一切似乎都覆盖了环境变量。
编辑:我需要这个来处理属性,而不是环境变量。具体来说,可以使用指定目标构建目录的环境变量从另一个源调用devenv。如果该变量不存在(可能是因为devenv只是用作IDE),那么它应该使用默认值。我已经为MSBuild工作了;我现在需要它为VCBuild工作。
答案 0 :(得分:1)
我不认为这可以在项目级别完成:据我所知,vc项目文件没有针对逻辑语句进行解析(除了可以使用批处理文件语法的构建事件,但那是因为它们是运行的作为批处理文件)。
您唯一能做的就是创建一个具有默认变量的全局环境变量。如果调用devenv的环境也指定它,它将被覆盖。
环境:
MYVSOUTDIR="c:/temp"
vcproj / vsprops:
OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)"
在批处理文件中覆盖它:
set MYVSOUTDIR="d:/mytemp"
devenv
答案 1 :(得分:0)
<PropertyGroup Condition=" '$(your_var)' == '' ">
<your_var>default</your_var>
</PropertyGroup>
答案 2 :(得分:0)
我知道它在技术上超出了原始问题的范围,但是我已经通过编写一个加载项来解决这个问题,该加载项将检测环境变量是否已设置,如果没有,则构造变量的默认值并存储它。这不是最优雅的解决方案,但它确实有效。