ASP.NET Core 6.0对热重载的支持
.NET 熱重載技術支持將代碼更改(包括對樣式表的更改)實時應用到正在運行的程序中,不需要重啟應用,也不會丟失應用狀態。
一、整體介紹
目前 ASP.NET Core 6.0 項目都支持熱重載。在以下情況下支持應用的熱重載:
? ? ? 1. 僅運行一次的應用啟動邏輯代碼
中間件,除非代碼更新是委托給內聯中間件進行的。
已配置的服務。
路由創建和配置,除非代碼更新是委托給路由處理程序進行的(例如?OnInitialized)。
? ? ? 2. Blazer應用中,框架將自動觸發Blazor組件渲染
? ? ? 3.?在 MVC 和 Razor Pages 應用中,熱重載自動觸發瀏覽器刷新
? ? ? 4. 刪除 Razor組件參數屬性不會導致重新呈現組件。必須重啟應用。
Blazor WebAssembly 熱重載支持具有以下條件:
熱重載對方法主體的大多數更改做出反應,例如添加、刪除和編輯變量、表達式和語句。
還支持對 lambda 表達式和本地函數的主體進行更改。
不支持添加新的 lambda 或本地函數、添加新的運算符或關鍵字表達式。
不支持更改方法參數的名稱。
不支持方法主體之外的更改。
在 Visual Studio 2022 GA (17.0) 中,只有在沒有調試器的情況下運行時,才支持熱重載。
.NET CLI
? ?使用 dotnet watch 代碼激活熱重載:
dotnet watch若要強制應用重新生成和重啟,請使用命令行界面中的鍵盤組合Ctrl+R
進行不受支持的代碼編輯時(稱為強制編輯),?會詢問你是否要重啟應用:
是:重啟應用。
否:不重啟應用,并將應用保持在運行狀態而不應用更改。
始終:在發生強制編輯時按需重啟應用。
從不:不重啟應用,也避免未來出現提示。
若要禁用熱重載支持,請將?--no-hot-reload?選項傳遞給?dotnet watch?命令:
dotnet watch --no-hot-reload二、代碼示例
?本文中我們使用一個Blazor應用示例一下Hot reload
?1. VS Code新建Blazor Server project?
dotnet new blazorserver?2. dotnet watch 運行
F:\Tranning\NET6\Blazor>dotnet watch watch : Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload. Press "Ctrl + R" to restart. watch : Building...正在確定要還原的項目…所有項目均是最新的,無法還原。Blazor -> F:\Tranning\NET6\Blazor\bin\Debug\net6.0\Blazor.dll watch : Started info: Microsoft.Hosting.Lifetime[14]Now listening on: https://localhost:7256 info: Microsoft.Hosting.Lifetime[14]Now listening on: http://localhost:5249 info: Microsoft.Hosting.Lifetime[0]Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0]Hosting environment: Development info: Microsoft.Hosting.Lifetime[0]Content root path: F:\Tranning\NET6\Blazor\? ? ? ?首頁顯示的內容:
?3. 修改index.razor中的代碼
? ? ? ?界面顯示也自動跟著刷新了
? 以上是ASP.NET Core 6.0對熱重載的支持的一些介紹。
總結
以上是生活随笔為你收集整理的ASP.NET Core 6.0对热重载的支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Blazor University (4
- 下一篇: [活动 3.30]MAUI 跨平台应用开