Blazor 客户端 - 错误 NETSDK1082:'browser-wasm'

Blazor Client - error NETSDK1082: 'browser-wasm'

我创建了一个简单的 blazor wa 项目,选择了托管选项。在项目的client端它自动自带<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">。然后我在编写任何代码之前添加了一些 nuget 包,当我清理解决方案甚至重建解决方案时它给了我错误:

error NETSDK1082: There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'.

我查了一下,发现一个解决方案是将 .csproj 中的第一行更改为 <Project Sdk="Microsoft.NET.Sdk.Web"> 而不是默认情况下附带的内容。我这样做了,但是当我 运行 只是客户端时,它说 404。然后,如果我删除额外的包并将其放回默认的 sdk,它就可以工作。这些软件包出现此错误是有原因的吗?我顺便创建了一个 blazor wa 托管的 .net 6 项目。

我的client.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Blazored.LocalStorage" Version="4.1.5" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.12" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.ProtectedBrowserStorage" Version="5.0.0-rc.1.20451.17" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.0" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Identity.Web" Version="1.21.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    <PackageReference Include="RestSharp" Version="106.13.0" />
  </ItemGroup>

  
</Project>

不仅 .csproject 还要检查 project.assets.json 。通常罪魁祸首是非 Web 程序集兼容包。更简单的方法是检查您的 NuGet 依赖项并验证您的第三方包是否与 WebAssembly

兼容

https://github.com/dotnet/aspnetcore/issues/36711#issuecomment-922801873