由於我開始爲我們的項目使用MSBuild,因此我創建了幾個.proj腳本,這些腳本由我們存儲庫中的多個項目共享。所有這些共享腳本都駐留在一個目錄中。如何創建MSBuild .proj文件的公共存儲庫?
到目前爲止,我已經提到的共享腳本使用相對路徑,像這樣:
<MSBuild Projects="..\..\common\build\MyScriptA.proj" Properties="ABC=XYZ"/>
然而,每一個項目還進口了共同.proj腳本,像這樣:
<Import Project="..\..\common\build\CommonImports.proj"/>
其中<Import>
是幾個其他的東西,並定義了一些屬性。
今天早上我想我可以用一個變量替換相對路徑,可能是$(CommonDir)
,這個變量可以通過導入上面提到的CommonImports.proj
來定義。這將使我打電話的共同任務是這樣的:
<MSBuild Projects="$(CommonDir)\MyScriptA.proj" Properties="ABC=XYZ"/>
但是,我不能想出一個辦法,以這樣的方式,以使其在所有其他的MSBuild腳本導入工作,以確定此$(CommonDir)
變量不管他們的位置如何,都可以使用CommonImports.proj
。
This question提供了幾種創建包含相對路徑絕對路徑的屬性的方法,但如果我所做的全部操作都是<Import>
定義該屬性的腳本,則這些方法都不起作用。
問題1:我對MSBuild相當陌生;有沒有更好的方法來創建可重複使用的.proj腳本的「庫」,我可以通過<MSBuild>
任務運行?我知道$(MSBuildExtensionsPath)
,但是我希望常見任務駐留在我的結帳中,以便我們的生成計算機在執行結帳時自動獲取最新版本的常見任務。
問題2:如何定義$(CommonDir)
內CommonImports.proj
,以使其包含於含有CommonImports.proj
目錄的絕對路徑?
你是怎麼打電話給MSBuild的?這是NAnt任務嗎?如果你不使用NAnt,你能用它來幫助你嗎?如果您使用NAnt,請完全忽略我。 – 2009-08-24 11:34:57
不使用NAnt,也不想使用NAnt的解決方案。 – 2009-08-24 21:23:01