共用方式為


MSBuild Server

MSBuild Server 可改善 .NET Core 組建的效能,當您在 Windows、Linux 或 Mac .NET Core 組建環境中使用 .NET CLI 的指令時,會叫用 dotnet build 命令。 在每次要求建置時,不會啟動建置流程,而是在長時間執行的進程中快取大部分內容,以便下一次建置可以重複使用。 MSBuild 伺服器與 Visual Studio 組建無關,因為 Visual Studio 是 MSBuild 的宿主,並且已快取所有必要的上下文。

MSBuild Server 通常在 CI 案例中,例如 Azure 管線的建置中並不有幫助,因為管線通常會根據需求動態建立每次建置的環境,並在建置完成後立即移除。

啟用 MSBuild Server

預設不會啟用 MSBuild 伺服器;若要啟用,請將環境變數 DOTNET_CLI_USE_MSBUILD_SERVER 設定為 true1

啟用之後,第一次啟動新的建置程式時,就會啟動組建伺服器。 當您啟動第一個組建時,它會啟用快取。 快取在第一次建置完成後會保存,因此第二次建置會更快進行,因為啟動時間由於快取的信息而大幅降低。 快取會在建置完成之後保存,但在閑置時間 15 分鐘之後,就會關閉。 因此,主要在重複建置案例中很有助益,因為許多組建會接連要求。

關閉或停用 MSBuild Server

有幾種不同的方式可以停用 MSBuild 伺服器的使用。 如果您只想關閉執行中的伺服器,您可以發出 命令 dotnet build-server shutdown

若要停用機器上所有組建的功能,您可以將系統環境變數 DOTNET_CLI_USE_MSBUILD_SERVER 設定為 0false。 您也可以在中的 VS Code launch.json之類的工具中,根據每個項目設定此變數。

若要針對命令行組建的特定調用停用 MSBuild Server,您可以使用 選項 /nr:false (或 /node-reuse:false)。

若要完全停用此功能,您可以選擇退出啟用此功能的變更波; SET MSBuildDisableFeaturesFromVersion="17.4"。 這會停用相同變更波中的其他功能。 如需變更波段的詳細資訊,請參閱 MSBuild 變更波段

判斷組建伺服器的目前狀態

您可以在電腦上檢視進程狀態,並尋找 MSBuild 伺服器進程。 MSBuild 伺服器進程藉由啟動 dotnet.exe,會顯示 MSBuild.dll 的路徑和命令選項 /nodemode:8,其中 8 代表 MSBuild 伺服器(/nodemode:1 代表一般的 MSBuild 工作節點)。

另請參閱