Не было пакета среды выполнения для Microsoft.AspNetCore.App, доступного для указанного RuntimeIdentifier 'browser-wasm'

Попытка перейти с ASP.NET Core 3.1 на 5.0 с помощью этого руководство, предоставленное Microsoft.

Установлен 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>
...

Не могу найти ничего, связанного с этой ошибкой. Понятия не имею, где искать дополнительную информацию.

Спасибо за любую идею.


person Kasta    schedule 21.09.2020    source источник
comment
А какую Visual Studio вы используете? Это должна быть последняя предварительная версия.   -  person Henk Holterman    schedule 21.09.2020
comment
Сообщение об ошибке похоже на ошибку публикации. Вы допустили эту ошибку при публикации в IIS? Если да, это похоже на знать проблему на github, проверьте, и вы можете обновить его до последней версии .net 5.   -  person Rena    schedule 22.09.2020
comment
@HenkHolterman Да, это последняя предварительная версия. 16.8.0 Предварительная версия 3.0   -  person Kasta    schedule 22.09.2020
comment
У вас есть файл global.json?   -  person agua from mars    schedule 22.09.2020
comment
@aguafrommars Да. {SDK: {версия: 5.0.100-rc.1.20452.10}}   -  person Kasta    schedule 22.09.2020
comment
Я наблюдаю ту же проблему. Был скрупулезным в следовании руководству; перепроверили все пакеты NuGet. Я также использую VS Pro версии 16.8.0 Preview 3.0 с dotnet.exe 5.0.100-rc.1.20452.10 и Build Engine версии 16.8.0-preview-20451-02 + 51a1071f8   -  person Patrick Szalapski    schedule 22.09.2020
comment
что dotnet --list-sdks возвращает? присутствует 5.0.100-rc.1.20452.10?   -  person agua from mars    schedule 22.09.2020
comment
Да, последняя. 2.1.509 [C:\Program Files\dotnet\sdk] 3.1.102 [C:\Program Files\dotnet\sdk] 3.1.201 [C:\Program Files\dotnet\sdk] 3.1.300-preview-015048 [C:\Program Files\dotnet\sdk] 3.1.300 [C:\Program Files\dotnet\sdk] 3.1.402 [C:\Program Files\dotnet\sdk] 5.0.100-rc.1.20452.10 [C:\Program Files\dotnet\sdk] Я не думаю, что это ошибка публикации, поскольку я получаю ее, когда делаю dotnet build.   -  person Patrick Szalapski    schedule 22.09.2020
comment
@aguafrommars да, присутствует 5.0.100-rc.1.20452.10 [C: \ Program Files \ dotnet \ sdk]   -  person Kasta    schedule 22.09.2020
comment
Есть ли в ваших проектах ссылка на пакет Microsoft.AspNetCore.App?   -  person agua from mars    schedule 22.09.2020
comment
У меня нет ссылки на Microsoft.AspNetCore.App.   -  person Patrick Szalapski    schedule 22.09.2020
comment
Вы обновляете ссылки на пакеты blazor wasm до последней версии?   -  person agua from mars    schedule 22.09.2020
comment
Да, я сделал, как и указано в приведенном выше руководстве.   -  person Patrick Szalapski    schedule 22.09.2020
comment
Вы пытались удалить папки obj, bin и .vs?   -  person agua from mars    schedule 22.09.2020
comment
Только что сделал; без изменений.   -  person Patrick Szalapski    schedule 22.09.2020
comment
То же, что @PatrickSzalapski   -  person Kasta    schedule 23.09.2020
comment
У вас случайно есть ссылка на Microsoft.AspNetCore.Components.WebAssembly.Server в вашем клиентском проекте?   -  person Artak    schedule 17.11.2020


Ответы (8)


Наконец-то я заставил это работать.

Я сделал все, что гид сказал, за исключением файла проекта, который я изменил на это:

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

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

Но я понятия не имею, правильно ли это, когда официальное руководство по обновлению рекомендует использовать:

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

вместо того:

<Project Sdk="Microsoft.NET.Sdk.Web">
person Kasta    schedule 23.09.2020
comment
После изменения моего файла проекта, как вы говорите, и добавления UseBlazorWebAssembly как истинного, мой клиентский проект строится, но затем, когда я запускаю его серверный проект, я получаю Application startup exception: System.TypeLoadException: Method 'FilterDiagnostic' in type 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions' from assembly 'Microsoft.CodeAnalysis.CSharp, Version=3.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation. - person Patrick Szalapski; 23.09.2020
comment
Я ничего не вижу в критических изменениях о FilterDiagnostic или UseEndpoints. - person Patrick Szalapski; 23.09.2020
comment
@PatrickSzalapski Я использую Blazor Server, поэтому в моем решении есть только один проект. Не знаю, как тебе помочь. Попробуйте сосредоточиться на ответе Ричардса ниже. - person Kasta; 24.09.2020
comment
Ага - то же самое для меня. - person Sean Kearon; 28.10.2020
comment
ditto = ›то же самое для меня - person Jazb; 12.01.2021

Была такая же проблема, и, наконец, она заработала. Вот как.

В моем случае ошибка возникла не из-за самого проекта Blazor, а из-за указанного проекта в том же решении. Упомянутый проект ориентирован на стандарт .net 2.1, что само по себе должно быть удовлетворительным; однако в нем также были установлены некоторые пакеты NuGet, которые могут конфликтовать с зависимостями Blazor: (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)

Сообщение в блоге о. net 5 rc упоминает, что все пакеты Microsoft.Extensions. * в проекте Blazor должны быть обновлены до 5.0.0-rc.1. *.

Смог решить проблему, удалив зависимость проекта (которая мне изначально не нужна, но случайно попала туда).

Я не понимаю, почему сборка dotnet не дает понятного сообщения об ошибке о конфликте вместо этого расплывчатого сообщения об идентификаторе времени выполнения, в котором упоминается проект Blazor.

Надеюсь, это поможет и другим.

person Richard    schedule 23.09.2020
comment
Какие именно расширения? Расширения, используемые клиентом Blazor, сильно отличаются от расширений, используемых серверным ASP.NET Core. Если в ProjectA используются пакеты abstractions, проблем возникнуть не должно. - person Panagiotis Kanavos; 23.09.2020
comment
Кстати, .NET 5 больше не использует .NET Standard для совместного использования кода на разных платформах. Цель .NET 5 (_1 _) * - это * кроссплатформенная цель, где net5.0-ios14.0 - это конкретная среда выполнения. .NET Standard 2.1 поддерживается для совместимости, но больше не используется в качестве межплатформенной цели. - person Panagiotis Kanavos; 23.09.2020
comment
Я обновил все четыре проекта в своем решении до net5.0, но все равно получаю ту же ошибку. В вашем примере вы думали, что пакет Microsoft.Extensions.Configuration.Json является конфликтующим. Есть идеи, как я могу попытаться найти, какие мои косвенные зависимости могут противоречить друг другу? - person Patrick Szalapski; 23.09.2020
comment
Честно говоря, не совсем. Думаю, я бы просто попробовал по старинке методом проб и ошибок. (Создайте новый (пустой) проект с теми же зависимостями и укажите ссылку на этот проект из своего проекта Blazor. Затем удалите зависимости одну за другой, пока сборка не завершится успешно. - person Richard; 25.09.2020
comment
Я пытался использовать сервер Blazor WASM + gRPC, и когда я добавил службу gRPC в проект Blazor, у меня возникла эта проблема. Чтобы решить эту проблему, я следую этому ответу и удаляю дублированные зависимости из проектов (Grpc.AspNetCore, автоматически добавляется в проект Blazor), и все сработало. - person cHida; 17.11.2020

Я столкнулся с той же проблемой и спросил об этом Microsoft в этом сообщении: https://github.com/dotnet/aspnetcore/issues/27738

Вам необходимо обновить свои проекты, чтобы использовать указанные ниже SDK;

Client - Microsoft.NET.Sdk.BlazorWebAssembly
Server - Microsoft.NET.Sdk.Web
Shared - Microsoft.NET.Sdk
person Ozan Yasin Dogan    schedule 16.11.2020

У меня возникла эта проблема с другим сообщением об ошибке. Тип или имя пространства имен ApplicationPartAttribute не существует в пространстве имен Microsoft.AspNetCore.Mvc.ApplicationParts (отсутствует ссылка на сборку?).

В моем случае у меня была общая библиотека вспомогательных классов, в которой я начал создавать общие репозитории api данных с использованием Microsoft.AspNetCore.Mvc 2.0, на который ссылался в моем проекте Blazor с использованием недавно выпущенного .Net 5.

Чтобы решить эту проблему, мне пришлось отделить проект общего класса, переместив общие элементы api данных в новый проект, который удалил связь между .Net 5 Blazor и Microsoft.AspNetCore.Mvc 2.0.

person Sandy    schedule 11.11.2020

Спасибо за вашу помощь, в моем случае я должен выполнить шаги, упомянутые @Kasta и официальным руководством.

Я удостоверяюсь, что нижеприведенные изменения SDK внесены. Спасибо @OzanYasinDogan за упоминание об этой помощи.

  • Клиент - Microsoft.NET.Sdk.BlazorWebAssembly
  • Сервер - Microsoft.NET.Sdk.Web
  • Общий - Microsoft.NET.Sdk

В моем случае мне пришлось

  • Удалите <RuntimeIdentifier>browser-wasm</RuntimeIdentifier> и <UseBlazorWebAssembly>true</UseBlazorWebAssembly>. упоминается здесь
  • Удалите Microsoft.AspNetCore.Components.WebAssembly.BuildServer, который был версией 3.xx.xx, вызывающей конфликты, из Blazor.Client файла проекта.
person Chinmay T    schedule 18.11.2020

В моем случае я ссылался на проект, который ссылался на классы уровня данных, и это было небезопасно для клиентской стороны Blazor или «browser-wasm».

После удаления ссылки из клиентского решения ›Зависимости› Проекты Мое решение скомпилировано.

person KnuturO    schedule 22.12.2020

У меня возникла та же проблема, и я обнаружил, что причина

    <UseAppHost>true</UseAppHost>

который использовался в общем Directory.Build.props

Если вернуть значение false, я больше не получу ошибку browser-wasm.

person kolis    schedule 05.03.2021

Я решил эту проблему так, как описал Ричард:

  1. Убраны ссылки на Microsoft.Extensions.Logging, Microsoft.Extensions.Configuration, ... пакеты версии 3.2 во всех проектах решений, на которые ссылаются сервер и клиент.
  2. Обновлен проект .Server
  3. Обновлен проект .Client. Сохранял элемент в целевом разделе фреймворка, и он работал
<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>
person stalskaper    schedule 15.11.2020