51 votes

Vous devez ajouter une référence à l'assemblage mscorlib, version=4.0.0

J'ai quelques difficultés à migrer un projet web de la RC1 vers la RC2. Lors de la migration, j'obtiens un grand nombre de ces erreurs dans tout le projet.

Le type 'Func<,>' est défini dans un assemblage qui n'est pas référencé. Vous devez ajouter une référence à l'assemblage 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

On dirait que toutes les fonctions linq et les expressions lambda ne fonctionnent pas.

C'est ce que mon project.json ressemble à un fichier :

  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "System.Linq": "4.1.0-rc2-24027"
      },
      "imports": [ "net451", "portable-net45+win8" ]
    }
  },
  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "System.ComponentModel.Annotations": "4.1.0-*"
  }

Une idée de ce que cela signifie ? J'ai essayé de lancer dotnet restore n'a pas aidé.

0 votes

Je n'arrive pas à reproduire cette erreur. Pourriez-vous partager votre project.json complet ?

0 votes

J'ai rencontré des problèmes similaires en utilisant le imports argument. Essayez de le supprimer entièrement ou de remplacer net451 par dnx451.

0 votes

@Negorath bonne idée, pensez aussi à regarder ce qui est ajouté dans une nouveau RC2. La section des importations est "dotnet5.6", "dnxcore50", "portable-net45+win8"

80voto

Morteza Manavi Points 20486

J'ai eu le même problème et j'ai ajouté le paquet suivant à mon fichier project.json Les dépendances ont réglé le problème pour moi :

"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027",

Ce paquet permet la compatibilité avec les PCLs basés sur mscorlib.

6 votes

L'ajout de la version 1.0.1 m'a permis d'éviter cette erreur. Merci.

2 votes

J'ai le même problème mais j'ai toujours une erreur. Reference to type 'IListSource' claims it is defined in 'System', but it could not be found.

2 votes

Cela fonctionne également pour référencer des projets externes construits avec .NET Framework4+ à partir d'une application ASP.NET Core 1.1.

41voto

Daniel Santos Points 2135

En fait, le problème est une ancienne librairie qui nécessite une version asp.net 4.0 ou 4.5 (moins que Core).

Microsoft fournit une solution à ce problème en installant le paquet NuGet suivant.

Microsoft.NETCore.Portable.Compatibilité

de cette façon, vous pourrez exécuter votre code avec les anciennes librairies.

4voto

Matt Kemp Points 628

J'ai obtenu cette erreur lorsque j'ai créé un nouveau projet en utilisant le modèle Bibliothèque de classes (.NET Standard) et y a porté du code que je voulais réutiliser.

J'ai créé un nouveau projet Bibliothèque de classes (.NET Framework) et j'ai déplacé le code à cet endroit et cela a fonctionné sans aucun problème.

2voto

Supprimer le .csproj .utilisateur comme indiqué dans la capture d'écran présents dans le dossier de la solution. Déchargez le projet de l'explorateur de solutions. Rechargez le projet et construisez-le une fois. Cela a fonctionné pour moi.

0voto

Je n'ai pas le droit de commenter mais le post de Matt Kemp m'a conduit à ma solution. Dans mon cas, j'ai utilisé un Bibliothèque de classes(.Net Standard) au lieu de Bibliothèque de classes Android (Xamarin)

1 votes

S'il vous plaît fournir le code plutôt que d'écrire 2 lignes, même si vous n'avez pas de réputation vous pouvez aider en répondant mais avec des exemples.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X