-1
我有一個很小的項目有很多的依賴關係。我更改了項目中的一個文件,並注意到MSBuild也重新編譯了所有依賴項。什麼可能導致這個?這是默認行爲,如果是這樣,我該如何改變它?MSbuild需要比預期更長的時間
如果它的事項,我通過命令行編譯(不是從Visual Studio)
我有一個很小的項目有很多的依賴關係。我更改了項目中的一個文件,並注意到MSBuild也重新編譯了所有依賴項。什麼可能導致這個?這是默認行爲,如果是這樣,我該如何改變它?MSbuild需要比預期更長的時間
如果它的事項,我通過命令行編譯(不是從Visual Studio)
它可以建造它們,否則它可能只是被檢查的依賴,以決定他們是否需要重建。
首先,解決方案中有哪些類型的項目?更晦澀的項目類型的目標可能不是用增量構建編寫的,並且可能具有錯誤行爲(例如,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」開關並行構建您的依賴關係!
MSBuild不自行編譯任何東西 - 它是一個工具。請提供有關您的操作的更多詳細信息 - 您是如何構建項目的,參數如何。 – Tarec
啓用MSBuild日誌記錄,並告訴所有人。 –