web-dev-qa-db-fra.com

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

J'essaie d'ajouter AutoMapper comme dépendance à un projet utilisant NuGet sous 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 peux ajouter d'autres dépendances.

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

Gestionnaire de paquets NuGet 2.8.60318.667

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

73
pomber

Cela semble être un problème avec la version actuelle de 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:

PM> Install-Package AutoMapper -Version 4.2.1
41
pomber

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

AutoMapper a une dépendance de groupe qui spécifie une infrastructure cible de .NETStandard. Étant donné que votre version de NuGet Package Manager est trop ancienne, elle ne reconnaît pas ce cadre cible et le convertit en un cadre cible inconnu. Vous vous retrouvez ainsi avec des cadres en double, car .NETStandard est utilisé plusieurs fois dans ce paquet 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 pour Visual Studio 2013.

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

94
Matt Ward

J'ai fini par avoir besoin de mettre à jour NuGet.exe inclus dans la solution pour pouvoir créer des packages NuGet en exécutant:

nuget.exe update -self

30
bkaid

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

une fois que cela a été fait, j'ai pu utiliser le paquet Automapper 5.0.2

24
Mike

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

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

Vous trouverez une mise à jour pour Nuget.

Mettez à jour le paquet de nuget et essayez d'installer ou de créer le projet.

Merci, GT

16
Ganesh Todkar

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

  • Recherchez le dossier Cache du gestionnaire de paquets Nuget de VS 2012 (avec Tools - Options - Nuget Package Manager)
  • Ouvrez AutoMapper.5.x.x.nupkg avec votre outil Zip préféré
  • Modifier le fichier AutoMapper.nuspec - J'ai simplement supprimé toutes les dépendances sauf .NETFramework4.5
  • Ajouter le dossier de cache en tant que source Nuget (également dans Tools - Options - Nuget 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.

1
marapet

Suppression de CSharp et d'AutoMapper. CSharp installé (4.0.0.0) en premier, puis ajouté Automapper (6.1.1.0). Cela a résolu le problème pour moi. 

0
rjose

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?

0
JTW

J'ai observé ce problème 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.

0
El-Ahrairah

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

0
Leszek Repie