有没有一种方法可以使Blazor Webassembly在更改/更新然后保存后重新编译.razor
文件?我已经习惯了在传统的ASP.NET Core MVC Razor View 以及客户端框架(例如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开始,它似乎没有内置的HMR,就像您在Angular或React项目中可以找到的那样,您可以在其中更改代码并刷新浏览器。
根据我发现的信息,此功能预定用于.NET 6,但是有解决方法可以使此功能正常工作,虽然有点麻烦,但确实可以工作。
如果您使用dotnet watch --project "{PathToServer}/{YourServerProject}.csproj" run
运行.NET项目,而不是启动调试或按F5键,它将监视项目文件(包括.razor
文件)中的所有更改,然后重新编译它们。
截至目前,浏览器将显示一条消息,表明它已断开与服务器的连接,并且似乎未重新建立连接。您需要手动刷新浏览器,并且将显示所有更改,但您将丢失任何应用程序状态。
他们现在拥有的最好的,see this thread for more info
关于c# - 重新保存Blazor WASM的.razor文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62119532/