4

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

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

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

4

3 回答 3

1

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

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

环境:

MYVSOUTDIR="c:/temp"

vcproj/vsprops:

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

在批处理文件中覆盖它:

set MYVSOUTDIR="d:/mytemp"
devenv
于 2010-01-05T08:57:59.997 回答
0

嗯,显然我不知道如何在这里从 XML

 <PropertyGroup Condition=" '$(your_var)' == '' ">
  <your_var>default</your_var>
 </PropertyGroup>
于 2010-01-04T21:58:55.900 回答
0

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

于 2010-01-06T02:50:17.337 回答