Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
MSBuild Server migliora le prestazioni delle compilazioni di .NET Core, che vengono richiamate quando si usa il dotnet build
comando dall'interfaccia della riga di comando di .NET in ambienti di compilazione Windows, Linux o Mac .NET Core. Invece di avviare il processo di compilazione ogni volta che viene richiesta una compilazione, gran parte del contesto viene memorizzata nella cache in un processo a esecuzione prolungata in modo che sia disponibile per essere riutilizzata dalla compilazione successiva. MSBuild Server non è rilevante per le compilazioni di Visual Studio, perché Visual Studio funge da host per MSBuild e memorizza già nella cache tutto il contesto necessario.
Il server MSBuild in genere non è utile in scenari di integrazione continua, ad esempio compilazioni di Azure Pipeline, perché le pipeline in genere pongono un ambiente di compilazione su richiesta per ogni compilazione e quindi eliminarlo al termine della compilazione.
Abilitare il server MSBuild
Il server MSBuild non è abilitato per impostazione predefinita; per abilitarla, impostare la variabile DOTNET_CLI_USE_MSBUILD_SERVER
di ambiente su true
o 1
.
Dopo l'abilitazione, per la prima volta che si avvia un nuovo processo di compilazione, viene avviato il server di compilazione. Quando si avvia la prima compilazione, abilita la cache. La cache viene salvata in modo permanente dopo il completamento della prima compilazione; la seconda compilazione procede quindi più velocemente poiché il tempo di avvio è notevolmente ridotto a causa delle informazioni memorizzate nella cache. La cache viene mantenuta dopo il completamento della compilazione, ma dopo un periodo di inattività di 15 minuti viene arrestata. Pertanto, è particolarmente utile negli scenari di compilazione ripetitivi in cui molte compilazioni vengono richieste in successione ravvicinata.
Arrestare o disabilitare MSBuild Server
Esistono diversi modi per disabilitare l'uso del server MSBuild. Se si vuole semplicemente arrestare il server in esecuzione, è possibile eseguire il comando dotnet build-server shutdown
.
Per disabilitare la funzionalità per tutte le compilazioni in un computer, è possibile impostare la variabile DOTNET_CLI_USE_MSBUILD_SERVER
di ambiente di sistema su 0
o false
. È anche possibile impostare questa variabile in base al progetto in uno strumento come VS Code in launch.json
.
Per disabilitare MSBuild Server per una chiamata specifica di una compilazione da riga di comando, è possibile usare l'opzione /nr:false
(o /node-reuse:false
).
Per disabilitare completamente la funzionalità, è possibile rifiutare esplicitamente l'ondata di modifiche che l'ha abilitata; SET MSBuildDisableFeaturesFromVersion="17.4"
. Questa funzionalità ha disabilitato altre funzionalità nella stessa onda di modifica. Per altre informazioni sulle onde di modifica, vedere Onde di modifica di MSBuild.
Determinare lo stato corrente del server di compilazione
È possibile visualizzare lo stato del processo nel computer e cercare i processi del server MSBuild. I processi del server MSBuild vengono avviati con dotnet.exe
e mostrano un percorso per MSBuild.dll e l'opzione /nodemode:8
di comando , dove 8
indica MSBuild Server ( /nodemode:1
indica i normali nodi del ruolo di lavoro MSBuild).