是否有一种方法可以使Blazor Webassembly在更改/更新然后保存.razor
文件时重新编译它们?我已经习惯了在传统的ASP.NET Core MVC剃刀视图以及客户端框架(例如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
这样的小技巧。
答案 0 :(得分:1)
正在 .net 6 中添加支持:https://www.telerik.com/blogs/instant-feedback-is-here-introducing-hot-reload-in-dotnet-6
答案 1 :(得分:0)
从.NET 5.0和VS 16.8.1开始,它似乎没有内置的HMR,就像您在Angular或React项目中会发现的那样,您可以在其中更改代码并刷新浏览器。
根据我发现的信息,此功能适用于.NET 6,但是有解决方法可以使其正常工作,虽然有点麻烦,但确实可以工作。
如果使用dotnet watch --project "{PathToServer}/{YourServerProject}.csproj" run
运行.NET项目而不是启动调试或按F5键,它将监视项目文件(包括.razor
文件)中的任何更改,然后重新编译它们。
截至目前,浏览器将显示一条消息,指出它与服务器的连接已断开并且似乎未重新建立连接。您需要手动刷新浏览器,并且所有更改都会显示,但是您将丢失任何应用程序状态。
答案 2 :(得分:0)
一位老师帮我解决了以下问题。有两种选择:
1- ) 在 Visual Studio 2019 中不使用调试模式:
要在调试模式下使用,您可以尝试以下操作:
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. }
接下来,在调试模式下运行应用程序时,从 Visual Studio 菜单中选择配置文件监视。 注意:通过这个,您将运行 dotnet watch 调试工具。
Marcoratti 教授在以下课程中发送的解决方案:https://www.udemy.com/course/curso-blazor-essencial/learn/lecture/17573912#questions/15161620/