ASP.NET Core 8 和 Blazor Web Assembly 应用程序运行时配置

Tec*_*ion 1 blazor blazor-webassembly .net-8.0 asp.net-core-8

我正在关注本教程https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/run,它构建了一个非常基本的 Blazor 应用程序。但是该项目无法在 ASP.NET Core 8 上运行。您能否帮忙找出为什么<app>runtimeconfig.json在构建 Blazor 项目时没有生成该文件?这是必需的,因为否则该项目将无法运行。该项目已成功构建,但我无法运行它。

我得到的错误是:

WasmAppHost --use-staticwebassets --runtime-config runtimeconfig.json
错误:无法在 /bin/Debug/net8.0/ 找到运行时配置

我尝试GenerateRuntimeConfigDevFile在文件中将属性设置为 true,.csproj如下所述: https: //learn.microsoft.com/en-us/dotnet/core/runtime-config/

但仍然没有创建 json 文件。

我尝试使用此处找到的模式手动创建它: https: //gist.github.com/natemcmaster/0bdee16450f8ec1823f2c11af880ceeb,但我收到有关缺少 WasmHostProperties 的错误。wasm 应用程序必须有一些特定的东西。

我想出了这个:

{
    "runtimeOptions": {
       "tfm": "net8.0",
       "frameworks": [
           {
               "name": "Microsoft.NETCore.App",
               "version": "8.0.0"
           },
           {
               "name": "Microsoft.AspNetCore.App",
               "version": "8.0.0"
           }
       ],
       "configProperties": {
           "System.GC.Server": true,
           "System.Reflection.NullabilityInfoContext.IsSupported": true,
           "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
       },
       "wasmHostProperties": {
           "webServerPort":"7238",
           "perHostConfig": [
        {
            "name": "wasmAppHost",
            "host-args": [
                "--experimental-wasm-simd", 
                "--experimental-wasm-eh" 
            ]
        }
    ]
}
}
}
Run Code Online (Sandbox Code Playgroud)

不过我相信这个文件应该是自动生成的。

我目前正在将 Visual Studio 升级到版本 17.8.2,因为出现警告称 VS 版本 17.7 无法定位 .NET 版本 8 或更高版本。如果这解决了 json 文件的问题,我们会及时通知您最新情况。

我还收到有关编译器版本的警告,我不确定它是否相关:

警告 CS9057 分析器程序集 'C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\8.0.0\analyzers\dotnet\cs\Microsoft.AspNetCore.App.Analyzers.dll' 引用版本 '4.8.0.0编译器的版本,比当前运行的版本“4.7.0.0”更新。WebAppAuthorization C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\8.0.0\analyzers\dotnet\cs\Microsoft.AspNetCore.App.Analyzers.dll 1 活动

您能给一些建议吗?

先感谢您。

Rob*_*aws 12

几天来,我用头撞墙几个小时,但我无法弄清楚。直到我将它与另一个 Blazor 项目进行比较。

发生这种情况的原因是您尚未将 Blazor DevServer NuGet 包包含在 WASM 项目中。

深入研究细节,该包具有一组不同的 MSBuild 目标,这些目标触发一组完全不同的目标RunArgumentsruntimeconfig.json,根本不需要文件。

只需将其添加到您的项目中:

<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.*-*" PrivateAssets="all" />
Run Code Online (Sandbox Code Playgroud)

您将再次启动并运行。