为 Blazor WASM 重新编译 .razor 文件
Recompile .razor files on save for Blazor WASM
有没有办法让 Blazor Webassembly 在 .razor
文件 changed/updated 然后保存时重新编译它们?我已经习惯了在传统 ASP.NET Core MVC razor 视图以及 Angular 等客户端框架中发生的这种情况。
在 ASP.NET Core MVC >3.0 中,类似于
services.AddRazorPages().AddRazorRuntimeCompilation();
可以解决问题,但我找不到任何适用于 Blazor 的东西。
当我需要停止整个应用程序并重新启动它以查看最新更改时,这很烦人。默认情况下,新 Blazor 应用程序的 Main
方法类似于
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
我在这里错过了什么? Blazor WASM 还不存在吗?如果这是一个解决方案,我愿意接受一些像 dotnet watch
dotnet build
这样有点老套的东西。
从 .NET 5.0 和 VS 16.8.1 开始,它看起来不像在 Angular 或 React 项目中找到的内置 HMR,您可以在其中更改代码并拥有它刷新浏览器。
根据我发现的信息,此功能是为 .NET 6 设计的,但有解决方法可以使其正常工作,虽然有点麻烦,但确实有效。
如果您 运行 使用 dotnet watch --project "{PathToServer}/{YourServerProject}.csproj" run
而不是启动调试或按 F5 的 .NET 项目,它将监视项目文件中的任何更改,包括 .razor
文件并重新编译他们。
从现在开始,浏览器将显示一条消息,指出与服务器的连接已断开,并且似乎没有重新建立连接。您需要手动刷新浏览器并显示任何更改,但您将丢失所有应用程序状态。
他们现在最好的,see this thread for more info
正在 .net 6 中添加支持:https://www.telerik.com/blogs/instant-feedback-is-here-introducing-hot-reload-in-dotnet-6
一位老师帮我解决了这个问题如下。有两种选择:
1- ) 在 Visual Studio 2019 年未使用调试模式:
- 单击工具>选项 -> 项目和解决方案 -> ASP .NET Core -> 在“自动构建和刷新选项”下 SELECT“保存更改后自动构建和刷新浏览器”
- 现在浏览器会在您进行更改时自行更新,但要使其正常工作,每次您 运行 应用程序时,您都必须 运行 在不调试的情况下按 Ctrl + F5 (在不调试的情况下启动)或单击“调试”->“在不调试的情况下启动”
重要提示:只有在 运行 没有调试
的情况下才有效
要在调试模式下使用,您可以尝试以下操作:
2-) 在项目的 launchSettings.json 文件中包含一个包含以下数据的配置文件:
1. "Watch": {
2. "commandName": "Project",
3. "launchBrowser": true,
4. "launchUrl": "http://localhost:5000/",
5. "commandLineArgs": "watch run",
6. "workingDirectory": "$(ProjectDir)",
7. "executablePath": "dotnet.exe",
8. "environmentVariables": {
9. "ASPNETCORE_ENVIRONMENT": "Development"
10. }
11. }
接下来,当 运行在调试模式下运行您的应用程序时,select 从 Visual Studio 菜单中查看配置文件。
注意:有了这个,您将运行使用 dotnet watch 调试工具。
Marcoratti 教授在以下课程中发送的解决方案:https://www.udemy.com/course/curso-blazor-essencial/learn/lecture/17573912#questions/15161620/
试试这个简单的解决方案:-
运行 使用 Ctrl + F5(没有调试器)而不是 F5 和 IIS express 的项目。一旦 .cs 和 .razor 文件在解决方案中被更改并保存,它们将自动重建并重新启动应用程序,以便可以看到更改只需刷新浏览器即可。
有没有办法让 Blazor Webassembly 在 .razor
文件 changed/updated 然后保存时重新编译它们?我已经习惯了在传统 ASP.NET Core MVC razor 视图以及 Angular 等客户端框架中发生的这种情况。
在 ASP.NET Core MVC >3.0 中,类似于
services.AddRazorPages().AddRazorRuntimeCompilation();
可以解决问题,但我找不到任何适用于 Blazor 的东西。
当我需要停止整个应用程序并重新启动它以查看最新更改时,这很烦人。默认情况下,新 Blazor 应用程序的 Main
方法类似于
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
我在这里错过了什么? Blazor WASM 还不存在吗?如果这是一个解决方案,我愿意接受一些像 dotnet watch
dotnet build
这样有点老套的东西。
从 .NET 5.0 和 VS 16.8.1 开始,它看起来不像在 Angular 或 React 项目中找到的内置 HMR,您可以在其中更改代码并拥有它刷新浏览器。
根据我发现的信息,此功能是为 .NET 6 设计的,但有解决方法可以使其正常工作,虽然有点麻烦,但确实有效。
如果您 运行 使用 dotnet watch --project "{PathToServer}/{YourServerProject}.csproj" run
而不是启动调试或按 F5 的 .NET 项目,它将监视项目文件中的任何更改,包括 .razor
文件并重新编译他们。
从现在开始,浏览器将显示一条消息,指出与服务器的连接已断开,并且似乎没有重新建立连接。您需要手动刷新浏览器并显示任何更改,但您将丢失所有应用程序状态。
他们现在最好的,see this thread for more info
正在 .net 6 中添加支持:https://www.telerik.com/blogs/instant-feedback-is-here-introducing-hot-reload-in-dotnet-6
一位老师帮我解决了这个问题如下。有两种选择:
1- ) 在 Visual Studio 2019 年未使用调试模式:
- 单击工具>选项 -> 项目和解决方案 -> ASP .NET Core -> 在“自动构建和刷新选项”下 SELECT“保存更改后自动构建和刷新浏览器”
- 现在浏览器会在您进行更改时自行更新,但要使其正常工作,每次您 运行 应用程序时,您都必须 运行 在不调试的情况下按 Ctrl + F5 (在不调试的情况下启动)或单击“调试”->“在不调试的情况下启动” 重要提示:只有在 运行 没有调试 的情况下才有效
要在调试模式下使用,您可以尝试以下操作:
2-) 在项目的 launchSettings.json 文件中包含一个包含以下数据的配置文件:
1. "Watch": {
2. "commandName": "Project",
3. "launchBrowser": true,
4. "launchUrl": "http://localhost:5000/",
5. "commandLineArgs": "watch run",
6. "workingDirectory": "$(ProjectDir)",
7. "executablePath": "dotnet.exe",
8. "environmentVariables": {
9. "ASPNETCORE_ENVIRONMENT": "Development"
10. }
11. }
接下来,当 运行在调试模式下运行您的应用程序时,select 从 Visual Studio 菜单中查看配置文件。 注意:有了这个,您将运行使用 dotnet watch 调试工具。
Marcoratti 教授在以下课程中发送的解决方案:https://www.udemy.com/course/curso-blazor-essencial/learn/lecture/17573912#questions/15161620/
试试这个简单的解决方案:-
运行 使用 Ctrl + F5(没有调试器)而不是 F5 和 IIS express 的项目。一旦 .cs 和 .razor 文件在解决方案中被更改并保存,它们将自动重建并重新启动应用程序,以便可以看到更改只需刷新浏览器即可。