明天,咱们很快乐的向您介绍 Visual Studio 2019 版本 16.11(预览版 1)和 .NET 6 中的 dotnet watch 命令行工具(预览版 4)中的 .NET 热重载体验的可用性。在本博文,咱们心愿借此机会向您介绍什么是 .NET 热重载、如何开始应用此性能、咱们对将来打算改良的愿景是什么,以及明确以后反对的编辑类型和语言。
什么是 .NET 热重载?
借助热重载,您当初能够在利用程序运行时批改应用程序托管的源代码,而无需手动暂停或点击断点。只需在利用运行时进行受反对的更改,在咱们全新的 Visual Studio 体验中,应用“利用代码更改”按钮即可利用您的编辑。
热重载实用于您现有和行将推出的许多我的项目类型,例如 WPF、Windows 窗体、.NET MAUI 预览、ASP.NET Core 应用程序后盾代码、控制台应用程序、WinUI 3(须要托管调试器)等等。这种反对十分宽泛,具备应用任何由 .NET Framework 或 CoreCLR 运行时提供反对的我的项目的外围教训。
应用 热重载,咱们的指标是无论您喜爱以何种形式启动应用程序,都能够提供这种体验。在明天的版本中,您当初能够通过齐全集成的 Visual Studio 调试器体验或 dotnet watch 命令行工具来应用这种体验,更多选项将在当前的版本中提供。
入门
首先,您能够抉择应用 Visual Studio 的最新预览版或咱们的 .NET 6 Preview 4,阐明如下。
Visual Studio:
要在应用调试器时在 Visual Studio 中尝试热重载:
- 下载并装置 Visual Studio 2019 版本 16.11 预览版 1
- 关上反对的我的项目类型,例如 WPF 利用
- 通过 F5 连贯调试器启动应用程序(确保在调试器设置 / 调试启动配置文件中禁用“启用本机代码调试”)
- 关上蕴含一些代码的 C# 代码文件,这些代码能够通过正在运行的应用程序用户界面(例如:按钮的后盾代码或 ViewModel 的命令)或通过计时器每隔一段时间触发的代码从新执行并更改代码
- 应用 Visual Studio 工具栏中的新利用代码更改 (ALT-F10) 按钮(在“持续”按钮旁边)利用代码更改。请留神,应用 Visual Studio 时不须要保留文件,这使您能够灵便地疾速更改代码并继续前进。
如果您所做的更改失去反对,您的应用程序当初将在应用新逻辑运行时进行修补,并且您应该在下一次通过您的操作或相似触发代码的计时器从新执行更新的代码时看到应用程序行为中的更改。
您还能够持续应用其余调试器性能,例如断点、编辑并持续、XAML 热重载等。您明天应用的所有性能都应该与 .NET 热重载齐全并行工作。如果有什么不适宜您,请通知咱们!
命令行界面
要在应用 dotnet watch 启动应用程序时从命令行尝试热重载:
- 装置 .NET 6 预览版 4
- 将现有的 ASP.NET 外围我的项目更新为指标.NET 6
- 将“hotReloadProfile”:“aspnetcore”属性增加到 launchSettings.json 中的利用启动配置文件。
Properties/launchSettings.json 示例:
{
"profiles": {
"dotnet": {
"commandName": "Project",
"hotReloadProfile": "aspnetcore"
}
}
}
- 应用 dotnet watch 运行我的项目并查看输入,因为它应该表明启用了热重载
- 对您的应用程序治理的源代码进行受反对的代码更改并保留文件以利用
就像在 Visual Studio 体验中一样,您当初应该利用新逻辑,下次从新执行更新的代码时,您应该会看到应用程序行为的变动。
您还能够通过批改“blazorwasm”热重载配置文件并依照上述相似步骤将这种办法用于您的 Blazor WebAssembly 我的项目。您甚至能够应用 Windows 窗体或由 CoreCLR 提供反对的其余类型的我的项目来尝试它,只需在 Properties 文件夹下手动增加一个名为 launchSettings.json 的文件,其中蕴含上述示例内容。
这种体验仍在开发中,咱们正在跟踪将来的改良,这将使应用 dotnet watch 更容易地在没有 launchSettings.json 文件的状况下热重载所有类型的 .NET Core 应用程序,但这是以后版本中的一个限度。
Visual Studio 2022 和 .NET 6 中的最佳
在明天的公布中,这只是咱们对 .NET 开发人员的热重载的残缺愿景的预览。尽管在晚期的 .NET 6 预览版和 Visual Studio 2019 中提供了一些性能,但为了充分发挥此性能的威力,咱们将 .NET 6(以及 .NET 的将来版本)和 Visual Studio 2022 作为一组框架和工具,以取得最残缺和优化的体验。
为了让您理解咱们打算在将来的预览和最终版本中提供什么类型的性能,以下是一些示例:
- .NET 多平台应用程序 UI (.NET MAUI):借助 .NET 6 Preview 4,构建 .NET MAUI 应用程序的开发人员当初能够将 .NET Hot Reload 用于面向 WinUI 3 的我的项目。在将来的版本中,咱们将提供 .NET Hot Reload 反对实用于 iOS、Android 和 Mac Catalyst 的 计划。
- Razor 页面:在将来的版本中,将反对热重载和编辑并持续 (EnC) 来编辑 Razor,用于针对 .NET 6 或更高版本的网站或 Blazor 应用程序
- Visual Studio 中不须要调试器:在 Visual Studio 2022 的将来版本中,咱们正在致力增加对应用热重载的反对,而无需调试器,这意味着开发人员将可能应用 CTRL-F5 启动他们的应用程序,并且依然能够应用 Hot Reload 进行修补他们正在运行的应用程序
- 缩小不受反对的更改数量:在 Visual Studio 2022 和 .NET 6+ 的将来版本中,咱们打算跨多个团队发展工作,以缩小运行时不受反对的编辑数量
- 优化框架以最好地与热重载配合应用:在 .NET 6 中,咱们正在钻研如何改良某些框架以更好地反对热重载。将来的示例将包含对 ASP.NET Core、.NET MAUI 和其余框架的改良,其中的调整和优化将使热重载更改在更多状况下更有用。
尽管以上是咱们目前的打算,但请留神,打算可能会依据客户的反馈和时间表而变动。
反对 / 不反对的更改和语言
无论您如何应用 .NET 热重载,请留神某些更改在运行时不受反对,并将以 rude 的编辑对话框提醒您,并要求您重新启动应用程序能力利用。咱们仍在钻研该性能和文档,以具体阐明反对哪些编辑。当初,首先回顾一下咱们现有的“编辑并持续 ”(EnC)等效性能列表。因为热重载由 EnC 提供反对,这将为您提供一个很好的终点,以便更好地了解这一新性能。无关详细信息,请参阅:EnC 文档。
此外,尽管下面的例子特地提到了 C#,但在 Visual Studio 的调试器下运行时,Visual Basic 也反对各种状况。.NET 6 目前不反对 F#,但咱们打算在将来的版本中依据客户反馈提供反对。
您的反馈很重要
在这个晚期的预览版本中,咱们抵赖会有谬误。有时,如果您尝试利用更改,它可能会默默地失败,或者您的应用程序可能会解体等。如果您的确遇到任何问题,请花点工夫向咱们报告问题,因为只有通过您的反馈,咱们能力确保关键问题失去解决失去解决,将来的决策将依据您的输出进行优先排序。
要分割咱们,请应用 Visual Studio 反馈机制 或者在微软 Q &A 论坛上发问任何无关开发的问题。