【问题标题】:Client Side Blazor throwing 500.31客户端 Blazor 投掷 500.31
【发布时间】:2021-01-08 13:22:19
【问题描述】:

上周四,我的客户端 Blazor 应用一切正常。然后今天我开始遇到两个新错误。

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

起初,这个问题似乎不是问题,因为一切仍在编译。但是,当我运行该应用程序时,出现以下错误:

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

如果您点击页面上的链接,它基本上表示您没有安装运行时。

我安装了 .Net 5 preview 8,所以我升级到 .Net 5 rc 1,但问题仍然存在。有人见过这个吗?

此外,当应用程序构建时,调试文件夹中不会放置任何内容。

谢谢你, 特拉维斯佩特里

【问题讨论】:

  • 昨天有一个相同的问题。您是否有global.json 可能针对较旧的运行时版本?仍然安装旧的 .NET 5 运行时或 SDK?您可以尝试removing olderr .NET Core preview verrsions 或在您的项目文件夹中创建一个新的global.json
  • @PanagiotisKanavos 不,我没有。我还在更新前卸载了预览版 .Net 5。如果我创建一个新的 Blazor 项目,我会遇到同样的问题。
  • 如果您在父文件夹或磁盘根目录中有global.json,它将覆盖当前的 SDK。在项目的根目录中尝试dotnet new globaljson 创建一个新的global.json
  • @PanagiotisKanavos 我加了一个,但是山雀没有效果。我添加了 global.json { "sdk": { "version": "5.0.100-rc.1.20452.10" } } 的内容
  • @PanagiotisKanavos 奇怪的是,Visual Studio 的行为就像我还没有在项目中安装任何 nuget 包一样。

标签: blazor-client-side blazor-webassembly .net-5


【解决方案1】:

遇到了同样的问题(There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'),终于搞定了。

在我的情况下,错误不是 Blazor 项目 本身的结果,而是同一解决方案中的引用项目

查看related Stack Overflow question 以获得那里提供的答案。

【讨论】:

  • 那个答案有点不完整。具体是哪些扩展?客户端和服务器运行时不同,需要不同的实现,因此使用 Microsoft.Extensions.Logging 会失败,但 Microsoft.Extensions.Logging.Abstractions 可能不会失败
  • @Panagiotis Kanavos 在 .NET 6 Web Assembly 应用程序中引用 .NET 6 类库时遇到了同样的问题。解决方案是从库中删除对 Serilog.AspNetCore Nuget 包的引用。
  • @Anonymous 该包用于在 ASP.NET Core Web 应用程序上配置日志记录,而不是 Blazor WASM。在 Blazor WASM 中,除了浏览器控制台或将日志发送到某个服务器外,没有其他地方可以记录。有different Serilog packages for Blazor WASM logging。此外,如果你想创建一个可重用的库,你不应该强迫开发人员使用特定的日志库或配置。该库应该只依赖于ILogger<>,它是Microsoft.Extensions.Logging.Abstraction的一部分