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 ...
随机推荐
- C++学习笔记_complex类的实现
头文件中的防卫式声明 点击查看代码 #ifndef __COMPLEX__ #define __COMPLEX__ class complex { } #endif 类的定义 点击查看代码 class ...
- 帆软报表(finereport) 饼图联动
饼图联动:点击饼图1,饼图2和饼图3显示饼图1的关联数据,接着点击饼图2,饼图3显示饼图2的关联数据,点击上方清除级联,饼图则恢复默认展示状态 下面以上图示例效果为例,说明制作过程. 1.为每个饼图准 ...
- Solution -「ARC 124E」Pass to Next
\(\mathcal{Description}\) Link. 有 \(n\) 个人站成一个环,初始时第 \(i\) 个人手里有 \(a_i\) 个球.第 \(i\) 个人可以将自己手中任意数 ...
- Solution -「OurOJ 46544」漏斗计算
\(\mathcal{Description}\) Link. 定义一个运算结点 \(u\) 有两个属性:当前容量 \(x_u\).最大容量 \(V_u\).提供以下单元操作: I 读入一个整 ...
- Solution -「国家集训队」「洛谷 P2839」Middle
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\),\(q\) 组询问,给定 \(a<b<c<d\),求 \(l\le[a,b] ...
- Dubbo源码剖析五之服务本地缓存
Dubbo调用者需要通过注册中心(例如:ZK)注册信息,获取提供者.但是如果频繁从ZK获取信息肯定会存在单点故障问题,所以Dubbo提供了将提供者信息缓存在本地的方法. Dubbo在订阅注册中心的回调 ...
- 本地虚拟机在NAT网络连接模式下如何设置才可以访问外网以及使用Xshell远程连接
本文演示环境: 笔记本电脑系统:windows 7 虚拟机系统:CentOS 7 虚拟化软件:VMware Workstation 12 远程连接工具:Xshell 5 第一步: 打开虚拟网络编辑器 ...
- close-on-exec 相关的一个 bug
close-on-exec 相关的一个 bug 测试一个用 V4L2 拍照的程序时,发现程序单独运行很正常,但在多进程环境下运行时就会出现问题,具体表现为执行 open 系统调用打开 /dev/vid ...
- Lesson1——Tensor
Tensor Method 描述 is_tensor(obj) 如果 obj 是 PyTorch 张量,则返回 True : is_storage(obj) 如果 obj 是 PyTorch 存储对象 ...
- C#爬虫(03):使用Selenium
一.介绍: Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样. 1.Selenium Webdriver(也就是Selenium2 ...