Hot Reload 能在 .NET 应用运行时实时更新代码,提升开发效率。它支持修改方法逻辑、局部变量、Razor/Blazor 内容及 MAUI 界面布局,但不支持新增类或改动方法签名等结构变更。使用 Visual Studio 2022(17.1+)或 VS Code 配合 C# 扩展,在调试模式下保存代码即可生效;网页需手动刷新。命令行可通过 dotnet watch run 启用文件监听与自动重启,.NET 6 起支持无需重启的高级 Hot Reload。项目文件中添加 true 可启用完整功能,适用于 ASP.NET Core、Blazor 和 .NET MAUI 开发场景。

Hot Reload 是 .NET 中的一项功能,允许你在应用程序运行时修改代码,并立即看到更改效果,而无需手动停止、重新编译和重启应用。这项功能大大提升了开发效率,特别是在调试 ASP.NET Core 网页应用、Blazor 应用或 .NET MAUI 移动应用时。
Hot Reload 能做什么?
在支持的项目类型中,Hot Reload 可以处理以下类型的代码更改:
- 修改方法体内的逻辑(例如改变 if 条件或变量赋值)
- 添加或修改局部变量
- 修改 Razor 页面或 Blazor 组件中的 HTML 和 C# 代码
- 调整 .NET MAUI 的 UI 布局和样式
需要注意的是,它不能处理某些结构性更改,比如添加新类、修改方法签名、更改继承关系等,这类变更仍需重新启动应用。
如何使用 Hot Reload?
使用 Hot Reload 非常简单,前提是你的开发环境和项目类型支持该功能。
- 确保你使用的是 Visual Studio 2022(17.1 或更高版本),或者 Visual Studio Code 配合 C# 扩展(启用热重载)
- 启动应用时使用调试模式(F5 或“开始调试”按钮)
- 在代码编辑器中修改代码并保存(Ctrl + S)
- 如果更改被支持,Visual Studio 会自动将更改应用到正在运行的应用中
- 对于网页应用,浏览器可能需要手动刷新页面来查看更新(部分场景支持自动刷新)
命令行中使用 dotnet watch
如果你偏好使用命令行,可以使用 dotnet watch 工具实现类似效果。
dotnet watch run这个命令会启动应用并监视文件变化。当你保存代码时,它会自动重新编译并重启应用(适用于不支持实时注入的更改)。从 .NET 6 开始,dotnet watch 还支持真正的 Hot Reload(无需重启进程),尤其是在 ASP.NET Core 项目中。
要启用高级 Hot Reload 功能,可在项目文件中启用隐式 usings 和 Hot Reload 支持:
基本上就这些。只要环境配置正确,你可以在开发中快速迭代,几乎实时看到代码修改带来的变化。虽然不是所有改动都能热加载,但大多数日常开发场景已经足够高效。










