MSBuild 17.0 的新功能
本文說明 MSBuild 17.0 的重大更新。 如需詳細的版本資訊,請參閱 MSBuild 17.0.0。
Visual Studio 2022 和 .NET 6.0 隨附 MSBuild 17.0。
已變更的路徑
MSBuild 安裝於每個 Visual Studio 版本底下的 \Current 資料夾中,其可執行檔位於 \Bin 子資料夾中。 例如,隨 Visual Studio 2022 Community 一起安裝的 MSBuild.exe 路徑是 C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe。您也可以使用下列 PowerShell 模組來尋找 MSBuild:vssetup.powershell。
已變更的屬性
因為新的版本編號,所以已更新下列 MSBuild 屬性。
這個工具版本的
MSBuildToolsVersion
仍為「最新的」。 組件版本則與 Visual Studio 2017 和 Visual Studio 2019 的一樣,也就是 15.1.0.0。這個工具版本的
VisualStudioVersion
為 "17.0"
64 位元
MSBuild.exe 先前同時有 32 位元和 64 位元版本,但現在,64 位元版本是預設值。 Visual Studio 2022 會針對所有組建使用 64 位元版本的 MSBuild。 32 位元版本仍然可用,但建議將所有組建切換至 64 位元版本。
對於工作擁有者,這表示當 MSBuild 載入您的工作時,它會嘗試在 64 位元程序中載入工作。 建議您考慮將工作更新為在 64 位元程序中執行,但為了相容性,您可以告知 MSBuild:您的工作只在其 UsingTask 中以 32 位元執行。
效能改善
MSBuild 更快! 此版本的重點是改善許多常見案例的效能。 MSBuild 17.0 可以更快建置較大的專案。
.NET 版本
MSBuild (與 Visual Studio) 現在以 .NET Framework 4.7.2 和 .NET 6.0 為目標。 若要使用新的 MSBuild API 功能,您的組件也必須升級,但現有的程式碼將繼續運作。
記錄
二進位記錄檔比較小而且有更多資訊。
重大變更
- 在屬性函式中無法再呼叫
GetType()
方法。 - 適用於 .NET 的 MSBuild 以 .NET 6 為目標。
其他行為變更
MSBuildCopyContentTransitively
現在預設為開啟狀態,確保累加組建上的輸出資料夾一致性。
如需此版本中的更多變更,請參閱詳細的版本資訊;如需 MSBuild 版本中可以退出的變更,請參閲變更波浪。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應