NuGet Package Manager: ‘AutoMapper’ a déjà une dépendance définie pour ‘Microsoft.CSharp’

J’essaie d’append AutoMapper comme dépendance à un projet utilisant NuGet sur Visual Studio Premium 2012, mais cela échoue.

Ça dit:

L’opération a échoué
“AutoMapper” a déjà une dépendance définie pour “Microsoft.CSharp”.

Je suis capable d’append d’autres dépendances.

J’utilise la dernière version du gestionnaire de paquets pour VS 2012:

NuGet Package Manager 2.8.60318.667

Des idées que dois-je vérifier?

Le problème est que votre gestionnaire de paquets NuGet est trop vieux. Vous avez besoin de NuGet 2.12 car cela prend en charge les nouveaux frameworks .NETStandard que le package AutoMapper 5.0.1 NuGet utilise.

L’AutoMapper a une dépendance de groupe qui spécifie un cadre cible de .NETStandard. Comme votre version de NuGet Package Manager est trop ancienne, elle ne reconnaît pas ce framework cible et le convertit en framework cible inconnu. Vous vous retrouvez avec des frameworks dupliqués car .NETStandard est utilisé plusieurs fois dans ce package NuGet. Cela provoque l’erreur:

'AutoMapper' already has a dependency defined for 'Microsoft.CSharp' 

Malheureusement, NuGet 2.12 n’est pas disponible pour Visual Studio 2012 mais est disponible pour Visual Studio 2013.

Vous devez donc soit mettre à jour vers Visual Studio 2013 ou une version ultérieure, soit utiliser l’ancien package AutoMapper NuGet qui ne prend pas en charge .NETStandard.

Semble être un problème avec la version actuelle d’Automapper:

AutoMapper 5.0.0 mardi 28 juin 2016

J’ai essayé avec la version précédente et ça marche:

 PM> Install-Package AutoMapper -Verbose Install-Package : 'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'. At line:1 char:16 + Install-Package <<<< AutoMapper -Verbose + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM> Install-Package AutoMapper -Version 4.2.1 Installing 'AutoMapper 4.2.1'. Successfully installed 'AutoMapper 4.2.1'. 

Donc, si vous ne pouvez pas mettre à jour NuGet Package Manager, la réponse est la suivante:

 PM> Install-Package AutoMapper -Version 4.2.1 

J’ai fini par devoir mettre à jour NuGet.exe qui était inclus dans la solution pour pouvoir construire des paquets NuGet en exécutant:

nuget.exe update -self

J’ai eu le même problème sur VS2013. J’ai dû mettre à jour vers VS2013 Update 5 et obtenir la dernière dissortingbution de nuget pour VS2013 sur https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix

une fois cela fait, j’ai pu utiliser le package Automapper 5.0.2

Accédez à Visual Studio> Outils> Extension et mises à jour

Rechercher les mises à jour dans le menu de gauche de l’accordéon, accédez à Visual Studio Gallery.

Vous trouverez une mise à jour pour Nuget.

Mettez à jour le package nuget et essayez d’installer ou de construire le projet.

Merci, GT

Une autre solution si vous êtes coincé avec VS2012 et l’ancienne version de Nuget:

  • Recherchez le dossier Cache du Gestionnaire de packages Nuget de VS 2012 (avec ToolsOptionsNuget Package Manager )
  • Ouvrez AutoMapper.5.xxnupkg avec votre outil Zip préféré
  • Modifier le fichier AutoMapper.nuspec – J’ai simplement supprimé toutes les dépendances à l’exception de .NETFramework4.5
  • Ajoutez le dossier de cache en tant que source Nuget (également dans ToolsOptionsNuget Package Manager )
  • Installez Automapper avec la console ou l’interface graphique, mais assurez-vous de choisir d’abord le dossier de cache nouvellement ajouté en tant que source de package.

Bien entendu, la prochaine version d’Automapper devra probablement être adaptée pour pouvoir l’installer.

Cela ressemble à une incohérence entre la version .NET utilisée par le package Automapper et votre projet. Pouvez-vous confirmer la version .NET utilisée par votre projet?

Automapper 6.0.2 – nuget 2.8.8 donne cette erreur. Nécessaire de mettre à jour à 3.4.4 pour que cela fonctionne.

Supprimé à la fois CSharp et AutoMapper. Installé CSharp (4.0.0.0) d’abord, puis ajouté Automapper (6.1.1.0). Cela a résolu le problème pour moi.

J’ai observé ce problème précis lors de l’ouverture d’un projet avec Visual Studio 2010.

Après avoir ouvert avec VS2017, j’ai pu installer AutoMapper sans aucune erreur.