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 支持:
基本上就这些。只要环境配置正确,你可以在开发中快速迭代,几乎实时看到代码修改带来的变化。虽然不是所有改动都能热加载,但大多数日常开发场景已经足够高效。
