2011-07-05 205 views
4

我正在努力爲此問題找到解決方案。MSBuild無法確定正確的解決方案依賴關係

我有一個包含大約50個項目(C#)的解決方案(VS2008)。

項目間依賴關係被添加爲項目引用(而不是通過引用DLL)。

此外,在解決方案設置對話框中正確設置VS內的依賴關係。

問題是,當從我們的CI服務器上的MSBUILD(命令行)構建解決方案時,msbuild將構建這些項目,這些項目似乎是它們在解決方案文件中的佈局順序,而不是根據依賴關係。

我發現多次提到這個在網絡上,沒有任何解決方案...

我可以爲了與命令行的MSBuild建立正確的解決方案做什麼?

+0

您能否驗證項目間引用是在項目級別(項目|添加引用...)而不是在解決方案級別(項目|項目相關性...)配置的。在引用其他項目的.csproj文件中,每個引用的項目都應該有一個「」項目。 –

+0

我已經解決了這個問題。我刪除了對依賴項目的引用並重新添加它。看起來GUID有些不同,我不知道如何。我猜想從VS開始構建時沒有問題,但是在使用MSBuild時,它無法檢測到正在引用的項目,也無法構建正確的依賴順序。 –

+2

查看http://bit.ly/depfail上的MSBUild團隊博客,討論使用解決方案依賴性的風險 –

回答

1

這可能是由於您的解決方案中存在無效的構建順序。您可以在不刪除和重新添加項目的情況下更改構建順序。在解決方案資源管理器中,右鍵單擊解決方案名稱並選擇Project Build Order。你將能夠指定你的項目的構建順序,所以它應該在msbuild中工作。如果你在開發過程中已經緩存了DLL,那麼這通常會發生。要驗證它是否有效,請在更改構建順序和運行構建之前刪除所有obj和bin文件夾。

相關問題