if(a=b)
更改为if(a!=b)
这样的小更改,我也无法进行热重新加载。我需要停止调试器,并且我不确定“COMPLUS_ForceENC”环境变量是什么,找不到任何有关它的信息。当我创建一个新的Web应用程序时,C#和cshtml上的热重新加载非常顺利。
这是在我更改原始应用程序时显示的错误:
Error ENC2004:项目中所做的更改需要重新启动应用程序:当调试器已连接到已运行的进程时,不允许进行更改。在启动进程之前,请考虑设置“COMPLUS_ForceENC”环境变量。
if(a=b)
更改为if(a!=b)
这样的小更改,我也无法进行热重新加载。我需要停止调试器,并且我不确定“COMPLUS_ForceENC”环境变量是什么,找不到任何有关它的信息。Error ENC2004:项目中所做的更改需要重新启动应用程序:当调试器已连接到已运行的进程时,不允许进行更改。在启动进程之前,请考虑设置“COMPLUS_ForceENC”环境变量。
Ctrl + F5
和F5
调试,所以接受的答案是错误的。可能只是巧合,但从17.0.1升级到17.0.2后,它开始工作了。奇怪的是,更新日志中没有提到这样的错误修复。尝试更新到最新版本。
更新 似乎我只在我的新.NET 6项目上使其工作。在迁移到.NET 6的旧项目中,仍然会出现这种情况。也许在未完全迁移到.NET 6并仍使用旧的startup.cs文件的项目中,不会正确工作。在调试模式下,更新通知出现,但内容在浏览器刷新之前不会更改。如果不在调试模式下,刷新浏览器不起作用。
更新2 发现在新的.net 6 Asp.net Web页面项目中,如果我更改 .razor 文件,则热重载功能正常工作,但对于 .cshtml 文件,我需要刷新浏览器才能看到更改。我同时使用razor页面+ Blazor在同一个项目中,因此有两种文件类型。
如果尝试创建 .Net 6 Blazor 项目,我几乎确定热重载将正常工作。
更新3 我现在在Dotnet Github上开了个问题。您可以在那里跟进问题。github.com/dotnet/aspnetcore/issues/38809
对我来说,Visual Studio 2022 GA版本也无法工作 :( 看起来我不是唯一一个遇到这个问题的人,我注意到我的热重载功能图标与微软宣传视频中显示的不同,我的是火焰,而工作版本似乎有两个组成圆形的火焰:(
我找到了这篇文章
*在Visual Studio 2022 GA版本中,当使用Visual Studio调试器时,Blazor WebAssembly的Hot Reload支持尚未启用。 如果您通过Visual Studio启动应用程序而没有调试器,则仍然可以获取Hot Reload,并且我们正在努力解决这个问题, 在下一个Visual Studio更新中。
如果我启动程序而没有附加调试器,则具有Hot Reload,或者我可以在没有Hot Reload的情况下使用调试器运行应用程序,这符合上面链接的文章的预期,但是发布会非常误导人,因为他们从未提到这一点,也没有展示在演示中按下哪个按钮启动具有热重载的blazor webasm...无论如何,他们没有展示调试器和热重载在Blazor WebAssembly中一起工作,所以看起来这都是我们自己想象的 :( ... 我们需要等待。
<UseRazorSourceGenerator>false</UseRazorSourceGenerator>
在 .csproj
文件中。将其设置回 true
可以解决这个问题。我知道这可能是大多数人尝试的第一件事情之一,但我刚刚重新启动了Visual Studio,然后它又可以工作了。
https://www.technipages.com/visual-studio-native-code-debugging
使用您的项目,选择“项目”选项卡,然后选择“应用程序名称属性...”。launchSettings.json
文件中使用hotReloadProfile
。"IIS Express": {
"commandName": "IISExpress",
"hotReloadProfile": "aspnetcore",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"