2014-02-25 35 views
-1

我有一個很小的項目有很多的依賴關係。我更改了項目中的一個文件,並注意到MSBuild也重新編譯了所有依賴項。什麼可能導致這個?這是默認行爲,如果是這樣,我該如何改變它?MSbuild需要比預期更長的時間

如果它的事項,我通過命令行編譯(不是從Visual Studio)

+4

MSBuild不自行編譯任何東西 - 它是一個工具。請提供有關您的操作的更多詳細信息 - 您是如何構建項目的,參數如何。 – Tarec

+3

啓用MSBuild日誌記錄,並告訴所有人。 –

回答

0

它可以建造它們,否則它可能只是被檢查的依賴,以決定他們是否需要重建。

首先,解決方案中有哪些類型的項目?更晦澀的項目類型的目標可能不是用增量構建編寫的,並且可能具有錯誤行爲(例如,2012 SQL項目總是重建,因爲它試圖將SQLVAR參數解析爲文件位置)。

這裏有一些建議,讓你用自己的方式:

喜歡的文件記錄,讓您不依靠控制檯緩衝區解決。

msbuild.exe MySolution.sln /fl3 /flp3:warningsonly;logfile=msbuild.wrn /fl4 /flp4:errorsOnly;logfile=msbuild.err /fl5 /flp5:Verbosity=diag;logfile=msbuild.log 

這將產生三個日誌,兩個用於警告和錯誤,並與細節最大程度的日誌。打開msbuild.log並確定其中一個依賴關係的構建。

構建日誌是否表示目標被跳過?

Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files. 

還是他們被重建?

Building target "SqlBuild" completely. 

MsBuild可以並行構建您的項目。 提高性能的另一個訣竅是並行構建您的項目。 MsBuild是調度程序,可以使用神奇的「/ m」開關並行構建您的依賴關係!

相關問題