我有一個小項目的問題,我想有該項目的2個編譯的版本:靶向不同框架的MSBuild給出了依賴
- 一個是靶向的.NET 2.0框架
- 一個目標是.NET 3.5框架
一切進展順利;我已經將我的項目置於持續集成(使用CC.NET)之下,並創建了2個CC.NET「項目」。每個目標框架的一個項目。
我不會在(無關緊要的)細節上做太多事情,但是我的解決方案是針對VS.NET中的.NET 3.5框架設置的。
我有2的msbuild任務:
其構建爲 .NET 3.5(簡單,容易)一個任務建立用於 .NET 2.0
溶液中的溶液- 一個任務
在這個任務中,我打電話給MSBuild,並且指定TargetFrameworkVersion應該是v2.0。我還定義了一些額外的構建條件(因此,.NET3.5特定的代碼不會構建在面向.NET2.0的組件中)。
到目前爲止,這麼好。一切正常。 現在,問題是這樣的:
我的解決方案有一些依賴關係(引用第三方程序集)。在VS.NET中,我爲這些依賴項設置了「copy local」爲true。 當CC.NET構建我的.NET3.5版本的程序集時,第三方依賴關係確實被複制到我的輸出目錄中。
但是,當CC.NET構建我的.NET2.0版本的程序集時,依賴項不會複製到我的輸出目錄中。 (然後,這會導致我的單元測試失敗)。
我現在的問題是: 如何建立我的項目的.NET2.0版本時,我可以說msbuild某些第三方引用必須複製本地? 或者,有沒有其他方法可以實現這一點,因爲我不想在構建腳本中再次指定每個依賴項。我想這很快就會成爲維修的噩夢。
+1:非常感謝。 – ccellar 2011-08-19 22:18:04