2013-02-12 82 views
2

我有以下項目結構:的MSBuild:不要編譯引用的項目

SLN 
    libA 
    libB (references libA) 
    exeWPF (references libA and libB) 

我用楠編譯力霸和libB,與CSC,但我不能用WPF項目中使用CSC,XAML目標不能用NAnt編譯,所以我在NAnt項目中使用了一個MSBuild任務。

的問題是,當我推出一個完整的構建,力霸和libB已經通過楠,然後當MSBuild任務啓動時,libAlibB再次編譯,因爲exeWPF的csproj文件引用libA和libB項目。

另一種方法可以將libAlibB作爲項目,我可以在exeWPF csproj文件中將它們引用爲dll。問題是,在這種情況下,我放鬆了代碼,並導航到引用。

對我來說,解決方案應該是能夠從MSBuild任務中指定對MsBuild項目的引用。

回答

5

你可以建立exeWPF項目這樣

msbuild exeWPF.csproj /p:BuildProjectReferences=false 

物業BuildProjectReferences將阻止的MSBuild從建築的引用,它會被強制使用預建的組件來提取元數據的引用,如果引用它會失敗組件不存在。