没有为指定的RuntimeIdentifier'browser-wasm'提供的Microsoft.AspNetCore.App运行包。

时间:2020-09-21 13:28:20

标签: asp.net-core blazor blazor-client-side blazor-webassembly

尝试使用Microsoft提供的guide从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'

项目文件:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <UserSecretsId>*****</UserSecretsId>
    </PropertyGroup>
...

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

谢谢你的想法。

8 个答案:

答案 0 :(得分:14)

我终于成功了。

我做了guide所说的一切,除了我更改为的项目文件:

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <UserSecretsId>*****</UserSecretsId>
    <UseBlazorWebAssembly>true</UseBlazorWebAssembly>
  </PropertyGroup>
...

但是我不知道official upgrade guide说要使用时是否正确:

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

代替:

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

答案 1 :(得分:2)

遇到了同样的问题,终于使它起作用了。就是这样。

在我的情况下,错误不是 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)

blog post about .net 5 rc提到 Blazor项目中的所有Microsoft.Extensions。*软件包都应更新为5.0.0-rc.1。*。

能够通过消除项目依赖项解决问题(我本来不需要,但是偶然被放在那里)。

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

>

希望这对其他人也有帮助。

答案 2 :(得分:2)

我也遇到了同样的问题,并在这篇文章中向Microsoft询问了有关该问题: https://github.com/dotnet/aspnetcore/issues/27738

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

Client - Microsoft.NET.Sdk.BlazorWebAssembly
Server - Microsoft.NET.Sdk.Web
Shared - Microsoft.NET.Sdk

答案 3 :(得分:1)

我遇到了这个问题,并带有不同的错误消息“名称空间'Microsoft.AspNetCore.Mvc.ApplicationParts'中不存在类型或名称空间名称'ApplicationPartAttribute'(您是否缺少程序集引用?)”。

在我的情况下,我有一个共享的帮助程序类库,我已经开始使用Microsoft.AspNetCore.Mvc 2.0来构建通用数据api存储库,在Blazor项目中使用新发布的.Net 5引用了该库。

要解决此问题,我必须将共享类项目分开,将通用数据api元素移动到一个新项目,该项目删除了.Net 5 Blazor与Microsoft.AspNetCore.Mvc 2.0之间的链接。

答案 4 :(得分:1)

感谢您的帮助,就我而言,我必须遵循@Kasta和官方指南中提到的步骤。

我确保在SDK下方进行了更改,谢谢@OzanYasinDogan提及此帮助。

  • 客户端-Microsoft.NET.Sdk.BlazorWebAssembly
  • 服务器-Microsoft.NET.Sdk.Web
  • 共享-Microsoft.NET.Sdk

就我而言,我必须

  • 删除<RuntimeIdentifier>browser-wasm</RuntimeIdentifier>,然后 <UseBlazorWebAssembly>true</UseBlazorWebAssembly>Mentioned here
  • Microsoft.AspNetCore.Components.WebAssembly.BuildServer项目文件中删除版本为3.xx.xx的Blazor.Client

答案 5 :(得分:0)

在我的例子中,我引用了一个引用数据层类的项目,因此对于 Blazor 客户端或“浏览器-wasm”是不安全的。

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

答案 6 :(得分:0)

我遇到了同样的问题并发现了原因

    <UseAppHost>true</UseAppHost>

用于常见的 Directory.Build.props

通过将其设置回 false,我不会再遇到丢失的 browser-wasm 错误。

答案 7 :(得分:-1)

我以Richard所描述的方式解决了这个问题:

  1. 清理了对Microsoft.Extensions.Logging,Microsoft.Extensions.Configuration等的引用,在服务器和客户端引用的所有解决方案项目中都打包了3.2版
  2. 更新的.Server项目
  3. 已更新的.Client项目。 将元素保留在目标框架部分中,并且有效
<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>