共用方式為


MSBuild 17 的新功能

本文說明 MSBuild 17.0 中的重大更新。 如需每個版本的詳細版本資訊,請參閱 MSBuild 版本

MSBuild 17.0 隨附於 Visual Studio 2022.NET 6.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 功能,您的元件也必須升級,但現有的程式代碼會繼續運作。

日誌

二進位記錄較小,且具有詳細資訊。

在 MSBuild 17.8 和更新版本中,嘗試新的終端機記錄器(命令行上的-terminalLogger-tl 選項),以改善控制台輸出。

重大變更

  • 屬性函式中無法再呼叫方法 GetType()
  • 適用於 .NET 的 MSBuild 以 .NET 6 為目標。

其他行為變更

  • MSBuildCopyContentTransitively 現在預設為開啟狀態,確保增量構建時輸出資料夾中的一致性。

如需此版本的更多變更,請參閱詳細的版本資訊;若需了解您可以選擇不參加的 MSBuild 版本變更,請參閱 變更波