我选择了一个简单的blazor-wa项目托管选项。在项目的客户端,它会自动附带<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
。然后,在编写任何代码之前,我添加了一些nuget包,当我清理解决方案,甚至重建解决方案时,它会给我错误:
错误NETSDK1082:没有Microsoft.AspNetCore.App的运行时包可用于指定的RuntimeIdentifier"browser wasm"。
我查了一下,发现一个解决方案是将.csproj
中的第一行改为<Project Sdk="Microsoft.NET.Sdk.Web">
,而不是默认情况下的第一行。我这样做了,但当我只运行客户端时,它显示404。然后,如果我删除额外的包并将其放回默认的sdk,它就可以工作了。这些软件包出现此错误是有原因的吗?我创建了一个blazor wa托管的.net 6项目btw.
我的客户.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