尝试使用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>
...
无法找到与此错误相关的任何内容。我不知道在哪里搜索更多信息。
谢谢你的想法。
答案 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所描述的方式解决了这个问题:
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>