没有可用于指定 RuntimeIdentifier 'browser-wasm' 的 Microsoft.AspNetCore.App 运行时包

Kas*_*sta 19 asp.net-core blazor blazor-client-side blazor-webassembly

尝试使用Microsoft 提供的本指南从 ASP.NET Core 3.1 迁移到 5.0 。

安装了带有运行时的 SDK 5.0.100-rc.1。按照指南更新项目,但仍然出现以下错误:

There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'
Run Code Online (Sandbox Code Playgroud)

项目文件:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <UserSecretsId>*****</UserSecretsId>
    </PropertyGroup>
...
Run Code Online (Sandbox Code Playgroud)

找不到与此错误相关的任何内容。我不知道在哪里搜索更多信息。

谢谢你的任何想法。

Kas*_*sta 17

我终于让它工作了。

我做了指南所说的一切,除了我改成这个的项目文件:

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <UserSecretsId>*****</UserSecretsId>
    <UseBlazorWebAssembly>true</UseBlazorWebAssembly>
  </PropertyGroup>
...
Run Code Online (Sandbox Code Playgroud)

但是我不知道官方升级指南说使用时是否正确:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
Run Code Online (Sandbox Code Playgroud)

代替:

<Project Sdk="Microsoft.NET.Sdk.Web">
Run Code Online (Sandbox Code Playgroud)


小智 16

遇到了同样的问题,终于成功了。就是这样。

就我而言,错误不是Blazor 项目本身的结果,而是同一解决方案中引用的项目的结果。引用的项目针对 .net 标准 2.1,其本身应该没问题;但是,它还安装了一些可能与 Blazor 依赖项冲突的 NuGet 包:(Microsoft.Extensions.*)。

Solution
- Project A (.net standard 2.1 - Class library)
  - Dependencies
    - Packages
      - Microsoft.Extensions.Configuration.Json (<-- example dependency)
- Project B (.net 5 - Blazor webassembly)
  - Dependencies
    - Projects
      - Project A (<-- caused the error, presumably because of the above dependency)
Run Code Online (Sandbox Code Playgroud)

关于 .net 5 rc 的博客文章提到Blazor 项目中的所有 Microsoft.Extensions.* 包应更新到 5.0.0-rc.1.*。

能够通过删除项目依赖项来解决问题(我一开始不需要,但不小心被放置在那里)。

我不明白的是,为什么“dotnet build”没有给出有关冲突的可理解的错误消息,而不是给出有关提到Blazor 项目的运行时标识符的模糊消息。

希望这也能帮助其他人。


Knu*_*urO 12

就我而言,我引用了一个引用数据层类的项目,并且对于 Blazor 客户端或“浏览器 wasm”来说并不安全。

从“客户端解决方案”>“依赖项”>“项目”中删除引用后,我的解决方案已编译。


Oza*_*gan 8

我遇到了同样的问题,并在这篇文章下询问了微软: https: //github.com/dotnet/aspnetcore/issues/27738

您需要更新您的项目才能使用以下 SDK;

Client - Microsoft.NET.Sdk.BlazorWebAssembly
Server - Microsoft.NET.Sdk.Web
Shared - Microsoft.NET.Sdk
Run Code Online (Sandbox Code Playgroud)


paw*_*zan 7

更新 nuget 包并将错误的包添加到错误的项目后,我遇到了同样的问题。我有一个库Project.Application.csproj

<Project Sdk="Microsoft.NET.Sdk">
Run Code Online (Sandbox Code Playgroud)

在这个项目中我有包:

<PackageReference Include="FluentValidation" Version="10.4.0" />
Run Code Online (Sandbox Code Playgroud)

我不小心添加了额外的包:

<PackageReference Include="FluentValidation.AspNetCore" Version="10.4.0" />
Run Code Online (Sandbox Code Playgroud)

然后我的代码就坏了。

FluentValidation.AspNetCore似乎与引用库Project.Application.csproj的 Blazor 客户端项目 - Microsoft.NET.Sdk.BlazorWebAssembly不兼容,因此请注意 Blazor 项目中引用的所有项目,以便它们不包含不兼容的包。