我正在构建一个Blazor WASMweb应用程序,目前每次更改代码时都需要重新构建该应用程序。
我找不到一种方法来让Visual Studio社区中的所有组件在保存时自动重新加载/热重新加载。
由于React、Vue和Angular允许我在保存时看到重新加载。。。有没有办法让Blazor使用这个功能?
我找到的最好的工作组是:
- 运行应用程序而不进行调试。但在我从IDE保存修改后,我必须在浏览器上单击刷新才能看到修改
好的,我刚刚发现它的工作方式与我制作应用程序服务器端的工作方式相同。
您必须使用从终端启动应用程序
dotnet watch -p C:MyAppBlazorApp1 run
然后每次按下后CTRL+S
它在浏览器上重新加载网页
在IIS express上使用Ctrl+F5(不带调试器(而不是F5运行项目。.cs和.rarzor文件在整个解决方案中更改和保存后,它们将自动重建并重新启动应用程序,以便只需刷新浏览器即可查看更改。
我最初并没有很好地实现这一点,但现在我终于实现了,至少部分实现了(仅从终端实现,而不是直接从VS2022实现(。
假设您有一个Blazor WASM托管在.NET6Core上。
-
确保所有项目文件都以.net6.0(客户端、服务器和共享(为目标。此外,您可能需要检查您的依赖项,这样它们就不会仍然以.net5为目标(不确定它们的影响有多大(。
-
在服务器上的Properties/launchSettings.json中:添加
"dotnet": { "commandName": "Project", "hotReloadProfile": "aspnetcore" }
内部";简档";,就像你可能有一个";IIS Express";一个是你的项目名称。
(请确保使用未使用的applicationUrl端口,必要时进行更改。(
-
在客户端wwwroot中的index.html中:添加
<script src="_framework/aspnetcore-browser-refresh.js"></script>
这实际上改变了我的游戏规则,它没有作为源代码包括在内,尽管默认的WASM模板没有这个脚本标记,并且仍然有效。请注意为什么我需要像这样明确地包含它。 -
使用Windows PowerShell(命令提示符可能有效(,然后导航到服务器项目文件夹。运行
dotnet watch
。现在应该说";watch:已启用热重新加载"在第一行,会出现很多启动文本。最终你会得到";内容根路径:"你的应用程序应该正在运行并监听更改。
除非我忘了什么(我真的刚刚开始工作,感觉很累(,否则它现在应该可以工作了。注意:你根本不应该开始使用VS2022,使用终端,否则他们会有复制和访问文件的冲突。例如,如果您需要在VS中重建,请先用Ctrl+C在终端中停止,然后重新启动。