MSBuild无法展开环境变量

MSBuild无法展开环境变量,msbuild,environment-variables,Msbuild,Environment Variables,我对MSBuild还很陌生,所以我可能做了一些明显错误的事情,但我的一位经常使用MSBuild的同事看不到任何错误,所以我想我应该发布在这里,看看其他人是否可以看到它 我正在将用于调用ant的旧批处理文件转换为MSBuild任务(因为我们希望从MSBuild调用它),而环境变量总是扩展为),原因我们不清楚 我有一个属性组,包括 <PropertyGroup> <EnvJavaHome> $([System.Environment]::GetEnvironmen

我对MSBuild还很陌生,所以我可能做了一些明显错误的事情,但我的一位经常使用MSBuild的同事看不到任何错误,所以我想我应该发布在这里,看看其他人是否可以看到它

我正在将用于调用
ant
的旧批处理文件转换为MSBuild任务(因为我们希望从MSBuild调用它),而环境变量总是扩展为
,原因我们不清楚

我有一个属性组,包括

<PropertyGroup>
  <EnvJavaHome>
    $([System.Environment]::GetEnvironmentVariable("JAVA_HOME"))
  </EnvJavaHome>
  <!-- ... -->
</PropertyGroup>

$([System.Environment]::GetEnvironmentVariable(“JAVA_HOME”))
(为便于阅读,添加了换行符)。现在,提示我调用正确,但我总是得到一个值
。但是,当我硬编码该值时,代码工作得非常好


我错过了什么明显的东西o)

如果它是一个env变量,您应该能够像使用
$(JAVA\u HOME)
$(JAVA_HOME)
中一样,请参见例如使用


(检查环境变量是否确实存在,
echo%JAVA\u HOME%
在命令窗口中)

我刚刚发现了完全相同的事情,并认为我应该在发布事实之前点击reload。谢谢o) 作为警告,因为它咬了我。VisualStudio以某种方式缓存环境变量,因此当您添加新的系统环境变量时,它可能仍然为空。重新启动VS通常会有所帮助。