2010-03-03 79 views
0

在Visual Studio 2010中,我們有用於C++項目的MSBuild。我們還可以爲項目添加額外的自定義屬性文件「* .props」,這些項目只是MSBuild腳本。MSBuild導入的腳本目錄

是否有可能在導入的「some.props」文件中知道它的目錄?

例如有「project.vcxproj」文件和「common.props」文件。 我想寫點東西:

<IncludeDir>$([and something for common.props file directory here])\include</IncludeDir> 

我該寫什麼呢?

回答

0

如果您可以將它們放在%Program Files%/ MSBuild /下,那麼您可以使用MSBuildExtensionsPath屬性。這解決了%Program Files%\ MSBuild。如果你不能把文件放在那裏,那麼另一個選擇是創建一個環境變量。在MSBuild中,您可以像訪問屬性一樣訪問env變量。例如,您可以執行<Message Text="Path :$(Path)"/>來打印出當前路徑。

1

%PROGRAMFILES%\ MSBuild的,這與$(MSBuildExtensionsPath)訪問,是把.props推薦的地方,.targets,你會安裝並留下靜態文件。例如,許多發佈構建過程的微軟團隊將他們的.targets文件放在那裏。

如果您打算簽入那些.props文件,爲您的團隊使用,或修改,或可能有不同組的源代碼不同的,這是不是一個好位置;它不在你的源代碼旁邊,它需要管理員權限才能修改。在這種情況下,我建議你把文件靠近你的源代碼,或許在樹或子樹,包括所有,這就是它的相關項目的根。