有没有办法在项目文件中替换一个环境变量(不管有没有vsprops),如果找不到变量,就用缺省值替换?我还没有找到任何方法来做到这一点,因为一切似乎都覆盖了环境变量。
编辑:我需要它为一个属性工作,而不是一个环境变量。具体地说,可以使用指定目标构建目录的环境变量从另一个源调用devenv。如果该变量不存在(可能是因为devenv只是用作IDE),那么它应该使用默认值。
我已经让它在MSBuild上工作了;现在我需要它在VCBuild上工作。
发布于 2010-01-06 10:50:17
我知道这在技术上超出了我最初的问题的范围,但是我已经着手通过编写一个插件来解决这个问题,该插件将检测是否设置了环境变量,如果没有设置,则构造变量的默认值并存储它。这不是最优雅的解决方案,但它是有效的。
发布于 2010-01-05 16:58:00
我不认为这可以在项目级别完成:据我所知,vc项目文件不会被解析为逻辑语句(除了构建事件,在构建事件中,您可以使用批处理文件语法,但那是因为它们是作为批处理文件运行的)。
您唯一能做的就是创建一个具有默认变量的全局环境变量。如果调用devenv的环境也指定了它,那么它将被覆盖。
环境:
MYVSOUTDIR="c:/temp"vcproj/vsprops:
OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)"在批处理文件中覆盖以下内容:
set MYVSOUTDIR="d:/mytemp"
devenv发布于 2010-01-05 05:58:56
嗯,显然我不知道如何在这里转换XML
<PropertyGroup Condition=" '$(your_var)' == '' ">
<your_var>default</your_var>
</PropertyGroup>https://stackoverflow.com/questions/2002420
复制相似问题