it-swarm.com.de

NuGet Package Manager: 'AutoMapper' hat bereits eine Abhängigkeit für 'Microsoft.CSharp' definiert

Ich versuche, AutoMapper als Abhängigkeit zu einem Projekt hinzuzufügen, das NuGet unter Visual Studio Premium 2012 verwendet, aber es schlägt fehl.

Es sagt: 

Operation fehlgeschlagen
Für 'AutoMapper' ist bereits eine Abhängigkeit für .__ definiert. "Microsoft.CSharp".

Ich kann andere Abhängigkeiten hinzufügen.

Ich verwende die letzte Version des Paketmanagers für VS 2012:

NuGet Package Manager 2.8.60318.667

Irgendwelche Ideen, was muss ich prüfen?

73
pomber

Scheint ein Problem mit der aktuellen Version des Automappers zu sein:

AutoMapper 5.0.0 Dienstag, 28. Juni 2016

Ich habe es mit der vorherigen Version versucht und es funktioniert:

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

Wenn Sie den NuGet Package Manager nicht aktualisieren können, lautet die Antwort:

PM> Install-Package AutoMapper -Version 4.2.1
41
pomber

Das Problem ist, dass Ihr NuGet Package Manager zu alt ist. Sie benötigen NuGet 2.12 , da dies die neueren .NETStandard-Frameworks unterstützt, die der AutoMapper 5.0.1 NuGet-Paket verwendet.

Der AutoMapper hat eine Gruppenabhängigkeit, die ein Zielframework für .NETStandard angibt. Da Ihre Version von NuGet Package Manager zu alt ist, erkennt sie dieses Zielframework nicht und konvertiert es in ein unbekanntes Zielframework. Sie erhalten schließlich doppelte Frameworks, da in diesem NuGet-Paket einige Male .NETStandard verwendet wird. Dies verursacht den Fehler:

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

NuGet 2.12 ist leider nicht für Visual Studio 2012 verfügbar, jedoch für Visual Studio 2013.

Daher müssen Sie entweder ein Update auf Visual Studio 2013 oder höher durchführen oder das ältere AutoMapper-NuGet-Paket verwenden, das .NETStandard nicht unterstützt.

94
Matt Ward

Am Ende musste NuGet.exe, das in der Lösung enthalten war, aktualisiert werden, um NuGet-Pakete erstellen zu können, indem Sie Folgendes ausführen:

nuget.exe update -self

30
bkaid

Ich hatte das gleiche Problem auf VS2013. Ich musste auf VS2013 Update 5 aktualisieren und die neueste Nuget-Distribution für VS2013 erhalten unter https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix

danach war ich in der Lage, das Paket Automapper 5.0.2 zu verwenden

24
Mike

Wechseln Sie zu Visual Studio> Tools> Erweiterung und Updates

Updates finden im linken Akkordeon-Menü, Gehe zu Visual Studio Gallery.

Sie finden ein Update für Nuget.

Aktualisieren Sie das Nuget-Paket und versuchen Sie, das Projekt zu installieren oder zu erstellen.

Danke, GT

16
Ganesh Todkar

Eine andere Problemumgehung, wenn Sie mit VS2012 und der alten Nuget-Version nicht weiterkommen:

  • Suchen Sie den Cache-Ordner des Nuget Package Manager von VS 2012 (mit Tools - Options - Nuget Package Manager).
  • Öffnen Sie AutoMapper.5.x.x.nupkg mit Ihrem bevorzugten Zip-Tool
  • Ändern Sie die Datei AutoMapper.nuspec - Ich habe einfach alle Abhängigkeiten außer .NETFramework4.5 gelöscht.
  • Fügen Sie den Cache-Ordner als Nuget-Quelle hinzu (auch in Tools - Options - Nuget Package Manager).
  • Installieren Sie Automapper entweder über die Konsole oder die GUI. Wählen Sie jedoch zuerst den neu hinzugefügten Cache-Ordner als Paketquelle aus.

Natürlich muss wahrscheinlich auch die nächste Version von Automapper angepasst werden, um sie zu installieren.

1
marapet

CSharp und AutoMapper wurden entfernt. Installierte zuerst CSharp (4.0.0.0) und fügte dann Automapper (6.1.1.0) hinzu. Dies hat das Problem für mich gelöst. 

0
rjose

Dies sieht aus wie ein Konflikt zwischen der vom Automapper-Paket verwendeten .NET-Version und Ihrem Projekt. Können Sie die von Ihrem Projekt verwendete .NET-Version bestätigen?

0
JTW

Ich habe genau dieses Problem beim Öffnen eines Projekts mit Visual Studio 2010 festgestellt.

Nach dem Öffnen mit VS2017 konnte ich AutoMapper ohne Fehler installieren.

0
El-Ahrairah

Automapper 6.0.2 - nuget 2.8.8 gibt diesen Fehler aus. Muss auf 3.4.4 aktualisiert werden, damit dies funktioniert.

0
Leszek Repie