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.
Met .NET Hot Reload worden codewijzigingen, inclusief wijzigingen in opmaakmodellen, toegepast op een actieve app zonder de app opnieuw te starten en zonder dat de status van de app verloren gaat. Hot Reload wordt ondersteund voor alle projecten van ASP.NET Core in .NET 6 of hoger.
Over het algemeen wordt bijgewerkte code opnieuw uitgevoerd om van kracht te worden met de volgende voorwaarden:
- Sommige opstartlogica wordt slechts eenmaal uitgevoerd:
- Middleware, tenzij de code-update is voor een inline-middleware-gedelegeerde.
- Geconfigureerde services.
- Route maken en configureren, tenzij de code-update is voor een gemachtigde van een route-handler (bijvoorbeeld
OnInitialized).
- In Blazor apps activeert het framework een Razor component automatisch.
- In MVC- en Razor Pages-apps wordt automatisch een browserverversing uitgevoerd.
- Als u een Razoronderdeelparameterkenmerk verwijdert, wordt het onderdeel niet opnieuw toegevoegd. De app moet opnieuw worden gestart.
Zie Ondersteunde codewijzigingen (C# en Visual Basic) voor meer informatie over ondersteunde scenario's.
Blazor WebAssembly
Blazor WebAssembly Hot Reload ondersteunt de volgende codewijzigingen:
- Nieuwe typen.
- Geneste klassen.
- De meeste wijzigingen in methodeteksten, zoals het toevoegen, verwijderen en bewerken van variabelen, expressies en instructies.
- Wijzigingen in de lichamen van lambda-expressies en lokale functies.
- Statische en exemplaarmethoden toevoegen aan bestaande typen.
- Statische velden, gebeurtenissen en eigenschappen toevoegen aan bestaande typen.
- Statische lambdas toevoegen aan bestaande methoden.
- Lambdas toevoegen die
thisvastleggen aan bestaande methoden die al eerderthisvastlegden.
Wanneer een kenmerk wordt verwijderd dat eerder de waarde van een onderdeelparameter heeft ingesteld, wordt het onderdeel verwijderd en opnieuw geïnitialiseerd om de verwijderde parameter weer in te stellen op de standaardwaarde.
De volgende codewijzigingen worden niet ondersteund voor Blazor WebAssembly apps:
- Een nieuwe
awaitoperator ofyieldtrefwoordexpressie toevoegen. - De namen van methodeparameters wijzigen.
Blazor WebAssembly Hot Reload ondersteunt de volgende codewijzigingen:
- Nieuwe typen.
- Geneste klassen.
- De meeste wijzigingen in methodeteksten, zoals het toevoegen, verwijderen en bewerken van variabelen, expressies en instructies.
- Wijzigingen in de lichamen van lambda-expressies en lokale functies.
- Statische en exemplaarmethoden toevoegen aan bestaande typen.
- Statische velden toevoegen aan bestaande typen.
- Statische lambdas toevoegen aan bestaande methoden.
- Lambdas toevoegen die
thisvastleggen aan bestaande methoden die al eerderthisvastlegden.
Wanneer een kenmerk wordt verwijderd dat eerder de waarde van een onderdeelparameter heeft ingesteld, wordt het onderdeel verwijderd en opnieuw geïnitialiseerd om de verwijderde parameter weer in te stellen op de standaardwaarde.
De volgende codewijzigingen worden niet ondersteund voor Blazor WebAssembly apps:
- Een nieuwe
awaitoperator ofyieldtrefwoordexpressie toevoegen. - De namen van methodeparameters wijzigen.
- Het toevoegen van instantievelden (niet-
static), gebeurtenissen of eigenschappen.
Blazor WebAssembly Hot Reload ondersteunt de volgende codewijzigingen:
- De meeste wijzigingen in methodeteksten, zoals het toevoegen, verwijderen en bewerken van variabelen, expressies en instructies.
- Wijzigingen in de lichamen van lambda-expressies en lokale functies.
De volgende codewijzigingen worden niet ondersteund voor Blazor WebAssembly apps:
- Nieuwe lambdas of lokale functies toevoegen.
- Een nieuwe
awaitoperator ofyieldtrefwoordexpressie toevoegen. - De namen van methodeparameters wijzigen.
- Wijzigingen buiten methodeteksten.
- Het toevoegen van instantievelden (niet-
static), gebeurtenissen of eigenschappen.
.NET CLI
Hot Reload wordt geactiveerd met behulp van de dotnet watch opdracht:
dotnet watch
Als u wilt afdwingen dat de app opnieuw wordt opgebouwd en opnieuw wordt opgestart, gebruikt u de toetsenbordcombinatie Ctrl+R in de opdrachtshell.
Wanneer een niet-ondersteunde codebewerking wordt uitgevoerd, een rude edit genoemd, wordt u door dotnet watch gevraagd of u de app opnieuw wilt starten:
- Ja: Start de app opnieuw op.
- Nee: start de app niet opnieuw op en laat de app actief zonder dat de wijzigingen zijn toegepast.
- Altijd: Start de app zo nodig opnieuw op wanneer onbeleefde bewerkingen plaatsvinden.
- Nooit: start de app niet opnieuw op en vermijdt toekomstige prompts.
Als u ondersteuning voor Hot Reload wilt uitschakelen, geeft u de --no-hot-reload optie door aan de dotnet watch opdracht:
dotnet watch --no-hot-reload
Hot Reload uitschakelen
De volgende instelling in Properties/launchSettings.json schakelt Dynamisch opnieuw laden uit:
"hotReloadEnabled" : false
Aanvullende bronnen
Zie de volgende bronnen in de Visual Studio-documentatie voor meer informatie:
- YouTube-video .NET 6 Hot Reload in Visual Studio 2022, VS Code en Notepad?!?
- Inleiding tot de .NET Hot Reload-ervaring voor het bewerken van code tijdens runtime
- Code schrijven en fouten opsporen in het uitvoeren van code met Hot Reload in Visual Studio
- Updates voor Blazor & Razor editors + Hot Reload voor ASP.NET
- Uitvoering testen met Hot Reload