【问题标题】:MSBuild failing to expand environment variablesMSBuild 无法扩展环境变量
【发布时间】:2010-08-20 14:02:35
【问题描述】:

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

我正在将我们用来调用 ant 的旧批处理文件转换为 MSBuild 任务(因为我们想从 MSBuild 调用它)并且环境变量总是扩展为 ),原因我们不明白。

我有一个包含

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

(为便于阅读添加了换行符)。现在MSBuild Property Functions reference 表明我正确地调用了System.Environment.GetEnvironmentVariable,但我总是得到) 的值。但是,当我对值进行硬编码时,代码运行良好。

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

【问题讨论】:

    标签: msbuild environment-variables


    【解决方案1】:

    如果它是一个环境变量,你应该可以像$(JAVA_HOME)一样使用它 如 &lt;EnvJavaHome&gt;$(JAVA_HOME)&lt;/EnvJavaHome&gt; ,参见例如使用http://msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx

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

    【讨论】:

    • 我刚刚发现了完全相同的事情,并认为我应该在发布事实之前点击重新加载。谢谢! :o)
    • 只是作为警告,因为它咬了我。 Visual Studio 以某种方式缓存环境变量,因此当您添加新的系统环境变量时,它可能仍然为空。重启 VS 通常会有帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-02-08
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多