roc*_*eye 2 ant exec environment-variables devenv
我在 WinXp 下使用 Ant 构建 MSVisual c++ 项目。
要访问独立于计算机的“devenv.com”,我想使用 vsvars32.bat 脚本。不幸的是,环境变量似乎只在“exec”范围内定义。
例子:
<exec executable='"${env.VS90COMNTOOLS}vsvars32.bat/>
<echo message="${DevEnvDir}" />
<echo message="${env.DevEnvDir}" />
<property environment="env2"/>
<echo message="${env2.DevEnvDir}" />
Run Code Online (Sandbox Code Playgroud)
我从来没有得到预期的结果。
如何使用“vsvars32.bat”脚本并访问其环境。变量?有更好的方法来实现这一目标吗?
不要vsvars32.bat直接调用,而是从小帮助程序脚本中调用它,该脚本使用set.
帮助脚本vsenvwrap.bat:
@echo off
call "%VS90COMNTOOLS%\vsvars32.bat"
set > vsenv.txt
Run Code Online (Sandbox Code Playgroud)
在您build.xml调用帮助程序脚本中,然后读取设置文件vsenv.bat:
<exec executable="vsenvwrap.bat" />
<property file="vsenv.txt" prefix="env2" />
Run Code Online (Sandbox Code Playgroud)
然后,您可以在构建期间或干净的目标中删除 vsenv.txt 文件。
这利用了以下事实:环境变量列表大多符合 java 属性文件所需的格式。