2010-01-04 24 views
4

有沒有什麼辦法可以在項目文件(有或沒有vsprops)中創建一個環境變量substituion,如果找不到變量,將被替換爲默認值?我還沒有找到任何方法來做到這一點,因爲一切似乎都覆蓋了環境變量。vcproj/vsprops的可選環境變量

編輯:我需要這個工作的財產,而不是一個環境變量。具體來說,devenv可以通過指定目標構建目錄的環境變量從其他源調用。如果該變量不存在(可能是因爲devenv只是用作IDE),那麼它應該使用默認值。

我已經有這個工作的MSBuild;我現在需要它爲VCBuild工作。

回答

0

我知道它在技術上我原來的問題的範圍之外,但我已經通過編寫一個插件來解決這個問題,該插件會檢測環境變量是否爲se t,如果不是,則構造變量的默認值並存儲它。這不是最優雅的解決方案,但它的工作原理。

0

嗯,顯然我不知道該怎麼fromat XML這裏

<PropertyGroup Condition=" '$(your_var)' == '' "> 
    <your_var>default</your_var> 
</PropertyGroup> 
+1

不幸的是,這是MSBuild,而不是VCBuild。我希望這很簡單。 – coppro 2010-01-04 22:37:45

+0

我的歉意我錯過了你對VCBuild的參考 – mfeingold 2010-01-04 23:51:37

1

我不認爲這可以在項目層面進行:在VC項目文件不會被解析爲邏輯語句,據我所知(除了可以使用批處理文件語法的構建事件之外,那是因爲它們是作爲批處理文件運行的)。

你唯一能做的就是創建一個具有默認變量的全局環境變量。如果devenv被調用的環境也指定它,它將被覆蓋。

環境:

MYVSOUTDIR="c:/temp" 

vcproj/vsprops:在一個批處理文件

OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)" 

覆蓋此:

set MYVSOUTDIR="d:/mytemp" 
devenv