我对MSBuild很新,所以我可能会做一些明显错误的事情,但我和MSBuild一起工作的同事看不到任何错误,所以我想我会在这里发帖看看是否其他人都可以看到它。
我正在将我们曾经调用ant
的旧批处理文件转换为MSBuild任务(因为我们想从MSBuild调用它),环境变量总是扩展到)
,原因我们不知道不明白。
我有一个包含
的属性组<PropertyGroup>
<EnvJavaHome>
$([System.Environment]::GetEnvironmentVariable("JAVA_HOME"))
</EnvJavaHome>
<!-- ... -->
</PropertyGroup>
(为了易读性添加了换行符)。现在MSBuild Property Functions reference建议我正确调用System.Environment.GetEnvironmentVariable,但我总是得到)
的值。但是,当我对值进行硬编码时,代码的效果非常好。
我错过了什么明显的事情? :O)
答案 0 :(得分:6)
如果它是一个env变量,你应该可以像$(JAVA_HOME)
一样使用它
与在<EnvJavaHome>$(JAVA_HOME)</EnvJavaHome>
中一样,请参阅例如使用http://msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx
(检查环境变量是否实际存在,echo %JAVA_HOME%
在命令窗口中)