首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vcproj/vsprops的可选环境变量

使用vcproj/vsprops的可选环境变量
EN

Stack Overflow用户
提问于 2010-01-05 05:38:42
回答 3查看 2.5K关注 0票数 4

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-06 10:50:17

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

票数 0
EN

Stack Overflow用户

发布于 2010-01-05 16:58:00

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

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

环境:

代码语言:javascript
复制
MYVSOUTDIR="c:/temp"

vcproj/vsprops:

代码语言:javascript
复制
OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)"

在批处理文件中覆盖以下内容:

代码语言:javascript
复制
set MYVSOUTDIR="d:/mytemp"
devenv
票数 1
EN

Stack Overflow用户

发布于 2010-01-05 05:58:56

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

代码语言:javascript
复制
 <PropertyGroup Condition=" '$(your_var)' == '' ">
  <your_var>default</your_var>
 </PropertyGroup>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2002420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档