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对热重载的支持的一些介绍。
周国庆
2022/03/23
ASP.NET Core 6.0对热重载的支持的更多相关文章
- ASP.NET Core 1.0基础之依赖注入
来源https://docs.asp.net/en/latest/fundamentals/dependency-injection.html ASP.NET Core 1.0在设计上原生就支持和 ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
第一部分:http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html 之前我介 ...
- [译]ASP.NET Core 2.0 全局配置项
问题 如何在 ASP.NET Core 2.0 应用程序中读取全局配置项? 答案 首先新建一个空项目,并添加两个配置文件: 1. appsettings.json { "Section1&q ...
- [译]ASP.NET Core 2.0 路由引擎
问题 ASP.NET Core 2.0的路由引擎是如何工作的? 答案 创建一个空项目,为Startup类添加MVC服务和请求中间件: public void ConfigureServices(ISe ...
- 【转载】从头编写 asp.net core 2.0 web api 基础框架 (3)
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc ...
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目
上一部分预备知识在这 http://www.cnblogs.com/cgzl/p/9010978.html 如果您对ASP.NET Core很了解的话,可以不看本文, 本文基本都是官方文档的内容. A ...
- ASP.NET Core 1.0基础之日志
过年出去玩了一圈,回来继续翻译.前两天偷懒没有翻译,只是转了两篇C# 7计划中的新features,大家还是很支持的.现在继续完善这个系列. 来源https://docs.asp.net/en/lat ...
随机推荐
- Centos8安装virtualbox
一.执行以下命令并启用 VirtualBox 和 EPEL 包仓库 dnf config-manager --add-repo=https://download.virtualbox.org/virt ...
- C++学习笔记_complex类的实现
头文件中的防卫式声明 点击查看代码 #ifndef __COMPLEX__ #define __COMPLEX__ class complex { } #endif 类的定义 点击查看代码 class ...
- Deformable Templates For Eye Detection
1 Abstract This approach was published On "Deformable Templates for Face Recognition" by A ...
- Solution -「51nod 1514」美妙的序列
\(\mathcal{Description}\) Link. 称排列 \(\{p_n\}\) 美妙,当且仅当 \((\forall i\in[1,n))(\max_{j\in[1,i]}\{ ...
- dbTable
标签: <my-Double-Table double-Table="doubleTable" head-List="headList" select-M ...
- Acme-https证书申请
Linux下使用acme.sh 配置https 免费证书 简单来说acme.sh 实现了 acme 协议, 可以从 let's encrypt 生成免费的证书. acme.sh 有以下特点: 一个纯粹 ...
- Java邮件发送中的setRecipient方法使用
一.方法setRecipient(Message.RecipientType type, Address address),是用于设置邮件的接收者. 1.有两个参数,第一个参数是接收者的类型,第二 ...
- 替代Tableau,思迈特软件Smartbi让Excel成为企业级自助分析平台
谈到企业级自助分析平台,大家自然会想到Tableau,在Garnter最新的BI平台魔力象限中,是这么描述Tableau的. "Tableau is a Leader in this ...
- C#中String StringBuilder
String和StringBuilder和StringBuffer,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用StringBuilder,啥事没有,我不能说你的想法事不正确的,但 ...
- OJ教程--递归
弄清楚递归的基本思想,递归函数的运行过程,暂且不考虑是否使用递归在效率方面的差异. 题目 1: 数的组合问题.从1,2,-,n中取出m个数,将所有组合按照字典顺序列出.如n=3,m=2时,输出:12 ...