13
votes

Aucun pack d'exécution pour Microsoft.AspNetCore.App n'était disponible pour le RuntimeIdentifier 'browser-wasm' spécifié

Tentative de migration d'ASP.NET Core 3.1 vers 5.0 à l'aide de ce guide fourni par Microsoft.

Installation du SDK 5.0.100-rc.1 avec les runtimes. Projet mis à jour comme l'indique le guide et toujours l'erreur suivante:

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

Dossier de projet:

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

Je ne trouve rien associé à cette erreur. Je ne sais pas où chercher plus d'informations.

Merci pour toute idée.


17 commentaires

Et quel Visual Studio utilisez-vous? Il devrait s'agir de la dernière édition Preview.


Le message d'erreur semble être une erreur de publication, avez-vous commis cette erreur lorsque vous publiez sur IIS? Si tel est le cas, il semble qu'il s'agisse d'un problème connu sur github, veuillez vérifier et vous pourrez mettre à jour vers la dernière version de .net 5.


@HenkHolterman Oui, c'est la dernière version d'aperçu. 16.8.0 Aperçu 3.0


Avez-vous un fichier global.json ?


@aguafrommars Oui. {"sdk": {"version": "5.0.100-rc.1.20452.10"}}


Je vois le même problème. Était méticuleux en suivant le guide; vérifié tous les packages NuGet. Je suis également sur VS Pro Version 16.8.0 Preview 3.0, avec dotnet.exe 5.0.100-rc.1.20452.10 et Build Engine version 16.8.0-preview-20451-02 + 51a1071f8


que dotnet --list-sdks ? est 5.0.100-rc.1.20452.10 présent?


Oui, c'est le dernier. 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] Je ne pense pas que ce soit une erreur de publication, comme je l'obtiens lorsque je dotnet build .


@aguafrommars oui, 5.0.100-rc.1.20452.10 [C: \ Program Files \ dotnet \ sdk] est présent


Avez-vous une référence de package à Microsoft.AspNetCore.App dans vos projets?


Je n'ai pas de référence à Microsoft.AspNetCore.App.


Mettez-vous à jour les références des packages blazor wasm vers la dernière version?


Oui, je l'ai fait, tout comme il l'indique dans le guide lié ci-dessus.


Avez-vous essayé de supprimer les dossiers obj , bin et .vs ?


Juste fait; pas de changement.


Identique à @PatrickSzalapski


Avez-vous par hasard une référence de projet à Microsoft.AspNetCore.Components.WebAssembly.Server dans votre projet client?


6 Réponses :


14
votes

Je l'ai finalement fait fonctionner.

J'ai fait tout ce que ce guide a dit, à l'exception du fichier de projet que j'ai changé en ceci:

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

Mais je ne sais pas si c'est correct lorsque le guide officiel de mise à niveau dit d'utiliser:

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

au lieu de:

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

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


4 commentaires

Après avoir modifié mon fichier de projet comme vous le dites, et ajouté UseBlazorWebAssembly comme true, mon projet client se construit, mais lorsque UseBlazorWebAssembly son projet Server, j'obtiens l' 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.


Je ne vois rien dans les changements de rupture concernant FilterDiagnostic ou UseEndpoints .


@PatrickSzalapski J'utilise Blazor Server donc je n'ai qu'un seul projet dans ma solution. Aucune idée de comment vous aider. Essayez de vous concentrer sur la réponse de Richard ci-dessous.


Ouais - pareil pour moi.



2
votes

J'ai eu le même problème et je l'ai finalement fait fonctionner. Voici comment.

Dans mon cas, l'erreur n'était pas le résultat du projet Blazor lui-même, mais un projet référencé dans la même solution. Le projet référencé cible la norme .net 2.1, qui devrait convenir en soi; cependant, il y avait également des packages NuGet installés qui pouvaient entrer en conflit avec les dépendances 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)

Le billet de blog sur .net 5 rc mentionne tous les packages Microsoft.Extensions. * D'un projet Blazor doivent être mis à jour vers 5.0.0-rc.1. *.

A été en mesure de résoudre le problème en supprimant la dépendance du projet (dont je n'avais pas besoin en premier lieu, mais qui y a été placé accidentellement).

Ce que je ne comprends pas, c'est pourquoi une 'dotnet build' ne donne pas un message d'erreur compréhensible sur un conflit au lieu de ce message vague sur l'identifiant d'exécution mentionnant le projet Blazor .

J'espère que cela aidera également les autres.


5 commentaires

Quelles extensions spécifiquement? Les extensions utilisées par Blazor Client sont très différentes des extensions utilisées par ASP.NET Core côté serveur. Il ne devrait y avoir aucun problème si ProjectA a utilisé les packages d' abstractions .


BTW .NET 5 n'utilise plus .NET Standard pour partager du code multiplateforme. La cible .NET 5 ( net5.0 ) * est * la cible multiplateforme, avec net5.0-ios14.0 étant le runtime spécifique. Norme .NET 2.1 est pris en charge pour la compatibilité , mais ne sont plus utilisés en tant que cible multi-plateforme


J'ai mis à jour les quatre projets de ma solution vers net5.0 mais net5.0 toujours la même erreur. Dans votre exemple, vous pensiez que le package Microsoft.Extensions.Configuration.Json était en conflit. Une idée de la façon dont je pourrais essayer de trouver quelles dépendances indirectes de la mienne pourraient être en conflit?


Honnêtement, pas vraiment. Je suppose que je vais juste essayer l'ancienne méthode par essais et erreurs. (Créez un nouveau projet (vide) avec les mêmes dépendances et référencez ce projet à partir de votre projet Blazor. Supprimez ensuite les dépendances une par une jusqu'à ce que la génération réussisse.


J'essayais d'utiliser le serveur Blazor WASM + gRPC et lorsque j'ai ajouté le service gRPC sur le projet Blazor, j'ai eu ce problème. Pour résoudre cela, je suis cette réponse et supprime les dépendances dupliquées des projets (Grpc.AspNetCore, ajouté automatiquement sur le projet Blazor), et tout a fonctionné.



1
votes

J'ai eu ce problème avec un message d'erreur différent "Le type ou le nom d'espace de noms 'ApplicationPartAttribute' n'existe pas dans l'espace de noms 'Microsoft.AspNetCore.Mvc.ApplicationParts' (vous manquez une référence d'assemblage?)".

Dans mon cas, j'avais une bibliothèque de classes d'assistance partagée dans laquelle j'avais commencé à créer des référentiels d'API de données génériques en utilisant Microsoft.AspNetCore.Mvc 2.0 qui était référencé dans mon projet Blazor en utilisant le .Net 5 récemment publié.

Pour résoudre ce problème, j'ai dû séparer le projet de classe partagée en déplaçant les éléments api de données génériques vers un nouveau projet qui supprimait le lien entre .Net 5 Blazor et Microsoft.AspNetCore.Mvc 2.0.


0 commentaires

-1
votes

J'ai résolu ce problème de la manière décrite par Richard:

  1. Nettoyer les références à Microsoft.Extensions.Logging, Microsoft.Extensions.Configuration, ... packages version 3.2 dans tous les projets de solution référencés par le serveur et le client
  2. Projet .Server mis à jour
  3. Projet .Client mis à jour. Élément conservé dans la section du cadre cible et cela a fonctionné
<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>


0 commentaires

2
votes

J'ai rencontré le même problème et j'ai posé des questions à Microsoft à ce sujet sous cet article: https://github.com/dotnet/aspnetcore/issues/27738

Vous devez mettre à jour vos projets pour les utiliser ci-dessous SDK;

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


0 commentaires

1
votes

Merci pour votre aide, Dans mon cas, je dois suivre les étapes mentionnées par @Kasta et le guide officiel.

Je m'assure que ci-dessous les modifications du SDK sont en place, merci @OzanYasinDogan d'avoir mentionné que cela aide.

  • Client - Microsoft.NET.Sdk.BlazorWebAssembly
  • Serveur - Microsoft.NET.Sdk.Web
  • Partagé - Microsoft.NET.Sdk

Dans mon cas, je devais

  • Supprimez <RuntimeIdentifier>browser-wasm</RuntimeIdentifier> et <UseBlazorWebAssembly>true</UseBlazorWebAssembly> . Mentionné ici
  • Supprimez Microsoft.AspNetCore.Components.WebAssembly.BuildServer qui était la version 3.xx.xx provoquant des conflits du fichier de projet Blazor.Client .

0 commentaires