2010-08-20 151 views
3

我對MSBuild很陌生,所以我可能會做一些明顯錯誤的事情,但是我的一位與MSBuild合作過的同事看不到任何錯誤,所以我想我' d張貼在這裏,看看是否有其他人可以看到它。MSBuild無法擴展環境變量

我轉換,我們習慣叫ant到的MSBuild任務(因爲我們想從MSBuild的稱呼它)一箇舊的批處理文件和環境變量總是擴展到)因爲我們不明白原因。

我具有包括

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

(添加用於易讀性換行符)的特性基團。現在MSBuild Property Functions reference建議我打電話System.Environment.GetEnvironmentVariable正確,但我總是得到值)。但是,當我對硬編碼值進行編碼時,代碼工作得很好。

我錯過了什麼明顯的東西? :o)

回答

6

如果它是一個env變量,您應該可以像 一樣使用它,如<EnvJavaHome>$(JAVA_HOME)</EnvJavaHome>,請參閱參考資料。使用http://msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx

(檢查環境變量實際上雖然存在,echo %JAVA_HOME%在命令窗口)

+0

我剛剛發現一模一樣的事情,想通發佈之前其實我應該打重裝。 謝謝! :o) – 2010-08-20 15:01:56

+2

就像一個警告,因爲它咬了我。 Visual Studio以某種方式緩存環境變量,所以當你添加新的系統環境變量時,它可能仍然是空的。重新啓動VS通常會有所幫助。 – slawek 2013-12-09 16:35:19