我有用於MSBuild的C++和C#項目。Visual Studio在解決方案中構建非依賴項目
項目文件中的<ProjectReference>
標籤指定了相關性。
當我使用MSBuild從命令行構建特定項目時,一切正常。
但是,當我在Visual Studio 2010中構建特定的項目A時,某些項目將在哪個項目A不依賴的情況下重建。
什麼會導致此類行爲以及如何解決此問題?
我有用於MSBuild的C++和C#項目。Visual Studio在解決方案中構建非依賴項目
項目文件中的<ProjectReference>
標籤指定了相關性。
當我使用MSBuild從命令行構建特定項目時,一切正常。
但是,當我在Visual Studio 2010中構建特定的項目A時,某些項目將在哪個項目A不依賴的情況下重建。
什麼會導致此類行爲以及如何解決此問題?
這可能是Project-A的依賴項之一取決於項目。 Visual Studio會建立所有的依賴關係。 e.g
項目A依賴於項目-B &項目-C 項目-C依賴於項目-X
的Visual Studio將建立項目-X,項目-C,項目-B和項目-A。
依賴walker是一個很好的工具來找出依賴關係圖和完整的列表。
爲什麼在使用MSBuild構建時一切正常?在處理依賴關係時,Visual Studio和MSBuild有什麼區別? – sergtk
可視化工作室通常會對代碼進行代碼搜索,因此它很可能會構建所有項目。本文有關於MSBuild的一些信息,這可能也有幫助。 http://blogs.msdn.com/b/visualstudio/archive/2010/12/21/incorrect-solution-build-ordering-when-using-msbuild-exe.aspx – arif
文章中描述的問題在解決方案文件包含依賴關係,但我在解決方案文件中沒有依賴項 - 我寫了關於這個問題 – sergtk
將msbuild日誌級別設置爲VS設置中的診斷,並在描述怪異行爲後檢查日誌 - 通常很明顯觸發構建的原因是什麼。 –
我收到6000行輸出我的解決方案... – sergtk
這是非常詳細的輸出和非常簡單=)。現在你可以找到確切的位置,哪裏出現了意外重建的項目,原因是什麼。畢竟它並不那麼難;)。 –