2016-07-07 17 views
69

Sto cercando di aggiungere AutoMapper come dipendenza a un progetto utilizzando NuGet su Visual Studio Premium 2012, ma non riesce.Gestore pacchetti NuGet: "AutoMapper" ha già una dipendenza definita per "Microsoft.CSharp"

Dice:

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

Sono in grado di aggiungere altre dipendenze.

Sto utilizzando l'ultima versione del gestore di pacchetti per VS 2012:

NuGet Package Manager 2.8.60318.667

Tutte le idee che cosa devo controllare?

+1

Eventuali duplicati di [Automapper Nuget pacchetto fallita] (http://stackoverflow.com/questions/38186799/automapper-nuget-package-failed) – Venky

+0

@Venky la differenza tra questa domanda e la mia è che sto usando il ultima versione di nugget package manager – pomber

risposta

40

sembra essere un problema con la versione corrente di automapper:

AutoMapper 5.0.0 Tuesday, June 28, 2016

ho provato con la versione precedente e funziona:

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'. 

Quindi, se non è possibile aggiornare NuGet pacchetto Manager, la risposta è:

PM> Install-Package AutoMapper -Version 4.2.1 
+1

Ho riscontrato questo problema e stavo ottenendo questo errore esatto da un'attività VSTS Build per NuGet Packager. Ho eseguito il downgrade alla 4.2.1 e questo ha corretto l'errore. – AC4

+0

Prima di eseguire il downgrade, ho provato ad eseguire l'aggiornamento a 5.0.2 e ancora mi ha dato quell'errore. – AC4

+0

Ho capito: Impossibile trovare la versione '4.2.1' del pacchetto 'AutoMapper'.At line: 1 char: 1 + Install-Package AutoMapper -Version 4.2.1 – Joe

0

Questo sembra un disallineamento tra la versione .NET utilizzata dal pacchetto Automapper e il progetto. Puoi confermare la versione .NET che sta usando il tuo progetto?

+0

.NET Framework 4.5 – pomber

83

Il problema è che il Gestore pacchetti NuGet è troppo vecchio. È necessario il numero NuGet 2.12 poiché supporta i framework .NET Framework più recenti utilizzati dal pacchetto NuMet di AutoMapper 5.0.1.

AutoMapper ha una dipendenza di gruppo che specifica un framework di destinazione di .NET Standard. Poiché la versione di NuGet Package Manager è troppo vecchia, non riconosce questo framework di destinazione e lo converte in un framework di destinazione sconosciuto e si finisce con framework duplicati poiché .NETStandard viene utilizzato alcune volte in quel pacchetto NuGet. Questo fa sì che l'errore:

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

Purtroppo NuGet 2.12 non è disponibile per Visual Studio 2012, ma è disponibile per Visual Studio 2013.

Quindi, o è necessario aggiornare a Visual Studio 2013 o al di sopra, o si utilizzare il vecchio pacchetto AutoMapper NuGet che non supporta .NETStandard.

+1

Grazie Matt, penso che volevi dire che "non è disponibile" per VS 2012 – pomber

+0

Per ragioni al di là del mio potere sono bloccato con VS 2012, quindi rimarrò con la versione precedente – pomber

1

Un altra soluzione se sei bloccato con VS2012 e la vecchia versione Nuget:

  • trovare la cartella della cache di Nuget Package Manager VS del 2012 (con Tools - Options-Nuget Package Manager)
  • aperta AutoMapper.5.x.x.nupkg con Zip preferito strumento
  • Modificare il file AutoMapper.nuspec - ho semplicemente cancellato tutte le dipendenze, tranne .NETFramework4.5
  • Aggiungere la cartella cache come una fonte Nuget (anche in Tools - Options - Nuget Package Manager)
  • Installa Automapper con la console o la GUI, ma assicurati di scegliere prima la cartella cache appena aggiunta come origine del pacchetto.

Naturalmente, anche la prossima versione di Automapper deve essere adattata per installarla.

21

Ho avuto lo stesso problema su VS2013. Ho dovuto aggiornare a VS2013 Update 5 e ricevere le ultime distro NuGet per VS2013 a https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix

una volta che è stato fatto mi è stato in grado di utilizzare l'Automapper 5.0.2 pacchetto

+2

Questo ha funzionato per me su VS2013 Update 5. Grazie ! – Tom

+1

Ha funzionato anche per me. Grazie per aver salvato la mia giornata. –

+2

ha funzionato per me! Grazie. (Avevo bisogno di riavviare VS dopo l'installazione della nuova versione di Nuget) –

27

Ho finito per dover aggiornare NuGet. exe che è stato incluso nella soluzione per essere in grado di costruire pacchetti Nuget eseguendo:

nuget.exe update -self

+1

Ciò ha risolto il problema per me. Dovrebbe essere la risposta giusta perché in realtà il downgrade di AutoMapper non è una risposta adeguata. – Raffaeu

+0

Tranne che questo accade ancora oggi usando Nuget 4.5.1. Sembra essere un problema specifico per AutoMapper – ebol2000

15

Vai a Visual Studio> Strumenti> Extension e aggiornamenti

Trova aggiornamenti nel menu a fisarmonica a sinistra, vai a Galleria Visual Studio.

Troverete un aggiornamento per Nuget.

Aggiornare il pacchetto nuget e provare a installare o creare il progetto.

Grazie, GT

+0

Ha funzionato per me :) –

+0

ha funzionato come fascino, grazie –

0

Automapper 6.0.2 - 2.8.8 NuGet dà questo errore. Necessario aggiornare a 3.4.4 per farlo funzionare.

0

Rimosso sia CSharp che AutoMapper. Installato CSharp (4.0.0.0) e poi aggiunto Automapper (6.1.1.0). Questo ha risolto il problema per me.

Problemi correlati