Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MSBuild Server verbetert de prestaties van .NET Core-builds, die worden aangeroepen wanneer u de dotnet build opdracht gebruikt vanuit de .NET CLI in Windows-, Linux- of Mac .NET Core-buildomgevingen. In plaats van het buildproces te starten telkens wanneer een build wordt aangevraagd, wordt veel van de context in de cache opgeslagen in een langlopend proces, zodat het beschikbaar is om opnieuw te worden gebruikt door de volgende build. MSBuild Server is niet relevant voor Visual Studio-builds, omdat Visual Studio fungeert als host voor MSBuild en al alle benodigde context in de cache opgeslagen.
MSBuild Server is over het algemeen niet nuttig in CI-scenario's zoals Azure Pipeline-builds, omdat pijplijnen doorgaans een buildomgeving op aanvraag voor elke build opzetten en deze vervolgens verwijderen wanneer de build is voltooid.
MSBuild Server inschakelen
Vanaf de .NET 11 SDK is MSBuild Server standaard ingeschakeld voor op MSBuild gebaseerde .NET CLI-opdrachten zoals dotnet build en dotnet msbuild.
In eerdere .NET SDK's was MSBuild Server standaard uitgeschakeld en u hebt deze ingeschakeld door in te stellen DOTNET_CLI_USE_MSBUILD_SERVER op true of 1.
De eerste keer dat u een build start, wordt de buildserver gestart en wordt de cache gevuld. De cache blijft behouden na de voltooiing van die build; de tweede build gaat daarom sneller omdat de opstarttijd aanzienlijk wordt verminderd vanwege de informatie in de cache. De cache blijft behouden nadat de build is voltooid, maar na een niet-actieve tijd van 15 minuten wordt de server afgesloten. Daarom is het voornamelijk nuttig in terugkerende buildscenario's waarbij veel builds in nauwe volgorde worden aangevraagd.
MSBuild Server wordt ook automatisch ingeschakeld voor builds met meerdere threads (-mt), omdat uitvoering met meerdere threads projecte taken binnen het serverproces uitvoert.
MSBuild Server afsluiten of uitschakelen
Er zijn verschillende manieren om het gebruik van MSBuild-server uit te schakelen. Als u alleen de actieve server wilt afsluiten, kunt u de opdracht dotnet build-server shutdownuitgeven.
Als u de functie voor alle builds op een computer wilt uitschakelen, kunt u de omgevingsvariabele DOTNET_CLI_USE_MSBUILD_SERVERfalsevan het systeem instellen op . U kunt deze variabele ook per project instellen in een hulpprogramma zoals VS Code in launch.json.
Als u MSBuild Server wilt uitschakelen voor een specifieke aanroep van een opdrachtregelbuild, kunt u de optie /nr:false (of /node-reuse:false) gebruiken. MSBuild Server is een vorm van opnieuw gebruiken van knooppunten, dus als u het opnieuw gebruiken van knooppunten uitschakelt, wordt ook de server uitgeschakeld en wordt de build uitgevoerd in het startproces.
MSBuild Server wordt niet gebruikt voor aanroepen die inherent niet compatibel zijn met het hosten van de build in een afzonderlijk proces, zoals -help, -versionen het opnieuw afspelen van een binair logboek. Deze builds vallen terug op uitvoering in het startproces.
De huidige status van de buildserver bepalen
U kunt de processtatus op de computer bekijken en zoeken naar MSBuild-serverprocessen. MSBuild-serverprocessen worden gestart met dotnet.exe en tonen een pad naar MSBuild.dll en de opdrachtoptie /nodemode:8, waarbij 8 MSBuild Server ( /nodemode:1 geeft de normale MSBuild-werkknooppunten aan).
Builds die MSBuild Server aanvragen, registreren ook wat er met deze aanvraag gebeurt. Voer uit met -v:diag, of leg een binair logboek vast met -bl, om te zien of de build een nieuwe server start, een actieve server opnieuw gebruikt of terugvalt op een in-process build en waarom.