0
votes

Le type ou le nom d'espace de noms «Mvc» n'existe pas dans l'espace de noms «Microsoft.AspNetCore» (vous manquez une référence d'assembly?)

Problème principal

Ce qui précède n'est qu'une des plus de 1 000 erreurs dans mon projet C #. J'utilise un MacBook Pro 2017 avec Catalina 10.15.6. et VSCode. Le dotnet-SDK que j'ai est 3.1.401. J'ai essayé de le désinstaller et de le réinstaller mais cela n'a pas fonctionné. J'avais un projet qui fonctionnait parfaitement, puis hier soir, j'ai fait une brew upgrade et aujourd'hui, j'ai toutes ces erreurs. Bien sûr, j'ai essayé dotnet restore dotnet ef database update Ces commandes réussissent à réinstaller les packages dans le répertoire du projet et à réappliquer les migrations de base de données (ce projet utilise une base de données postgres au cas où c'est important), mais il contient toujours toutes ces erreurs.

J'ai pu faire fonctionner le projet sur Firefox après avoir recréé un nouveau certificat SSL de développement.

Quand j'ai essayé d'exécuter l'application et de me connecter à `https: // localhost: 5001" comme je le fais toujours, j'ai ceci

"Échec de la connexion sécurisée Une erreur s'est produite lors d'une connexion à localhost: 5001. PR_END_OF_FILE_ERROR La page que vous essayez d'afficher ne peut pas être affichée car l'authenticité des données reçues n'a pas pu être vérifiée. Veuillez contacter les propriétaires du site Web pour les informer de ce problème. "

J'ai corrigé cela avec les commandes suivantes dotnet dev-certs https --clean puis dotnet dev-certs https Et puis cela a commencé à bien fonctionner sur Firefox mais j'ai toujours ces erreurs 1k + dans VScode.

En conclusion

Le projet fonctionne, j'ai juste une tonne d'erreurs dans VSCode et je ne suis pas sûr de leur cause.

Exemples d'erreur

  • The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
  • The type 'Task' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
  • The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)

0 commentaires

3 Réponses :


1
votes

5 commentaires

C'est une bonne commande à savoir. Merci! Le problème est cependant que le linter C # semble penser qu'il y a un tas d'erreurs de rupture de code même si j'ai le bon sdk dotnet installé. Je suis capable d'exécuter le projet, VSCode pense simplement que toutes les dépendances sont brisées.


Mon plaisir :-) Et peut-être pouvez-vous nous laisser un aperçu de certaines des erreurs en les ajoutant à votre question?


Je mets simplement à jour le message d'origine pour inclure des exemples d'erreur.


Merci Christian. Cela me semble être un truc du framework .NET, et votre projet est Core. Êtes-vous sûr de ne pas inclure de vieux déchets?


Oui, cela a fonctionné à 100% la veille de la mise à jour de la brew update , puis toutes ces erreurs sont apparues. J'ai isolé cela comme étant probablement un problème omnisharp (omnisharp est un programme utilisé par vscode pour le linting). De plus, j'ai commenté un nouveau problème Github où quelqu'un d'autre décrit le même problème que moi, donc je pense que cela pourrait être un bogue dans omnisharp. github.com/OmniSharp/omnisharp-vscode/issues/3990



1
votes

Le problème a été résolu ici: https://github.com/OmniSharp/omnisharp-vscode/issues/3990

Lorsque mon sdk dotnet core a été mis à jour vers la version 3.1.401, cela m'a obligé à modifier un paramètre dans vscode impliquant mono.

Je suis allé dans Fichier> Préférences> Paramètres puis j'ai recherché "omnisharp use global mono" et j'ai changé la valeur résultante de "auto" à "jamais". Cela a arrêté les erreurs lors du peluchage.


0 commentaires

0
votes

J'ai eu le même problème et la façon de le résoudre pour moi était:

  1. Installez le package Nuget Microsoft.AspNetCore.Mvc.RazorPages ( https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.RazorPages/ )
  2. Changez votre fichier .csproj, vous devez ajouter AddRazorSupportForMvc, pour qu'il ressemble à ceci:
      <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
      </PropertyGroup>

Le problème principal est que l'espace de noms Microsoft.AspNetCore.MVC n'existe plus.


0 commentaires