web-dev-qa-db-ja.com

NuGetパッケージマネージャー: 'AutoMapper'は既に 'Microsoft.CSharp'に定義された依存関係を持っています

Visual Studio Premium 2012でNuGetを使用してAutoMapperを依存関係としてプロジェクトに追加しようとしていますが、失敗します。

それは言います:

操作に失敗しました
'AutoMapper'は既に 'Microsoft.CSharp'用に定義された依存関係を持っています。

私は他の依存関係を追加することができます。

私はVS 2012用の最新版のパッケージマネージャを使用しています。

NuGetパッケージマネージャ2.8.60318.667

何をチェックすればいいですか?

75
pomber

現在のバージョンのautomapperに問題があるようです。

AutoMapper 5.0.0 2016年6月28日火曜日

私は以前のバージョンで試してみました、そしてそれは働きます:

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

NuGet Package Managerをアップデートできない場合、その答えは次のとおりです。

PM> Install-Package AutoMapper -Version 4.2.1
41
pomber

問題はあなたのNuGetパッケージマネージャが古すぎるということです。 NuGet 2.12 が必要です。これはAutoMapper 5.0.1 NuGetパッケージが使用している新しい.NETStandardフレームワークをサポートしているからです。

AutoMapperには、.NET Standardのターゲットフレームワークを指定するグループ依存関係があります。あなたのNuGetパッケージマネージャのバージョンは古すぎるので、このターゲットフレームワークを認識せず、それを未知のターゲットフレームワークに変換します。そしてそのNuGetパッケージで.NETStandardが何度か使用されるので、あなたは重複したフレームワークになります。これはエラーを引き起こします:

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

残念ながら、NuGet 2.12はVisual Studio 2012では利用できませんが、Visual Studio 2013では利用できます。

したがって、Visual Studio 2013以上に更新する必要があるか、または.NET Standardをサポートしていない古いAutoMapper NuGetパッケージを使用する必要があります。

94
Matt Ward

次のコマンドを実行して、NuGetパッケージをビルドできるようにするために、ソリューションに含まれているNuGet.exeを更新する必要がありました。

nuget.exe update -self

30
bkaid

VS2013でも同じ問題がありました。私はVS2013 Update 5にアップデートし、 https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.ToolsでVS2013の最新のnugetディストリビューションを入手する必要がありました。 vsix

それが完了したら、Visual Studioを再起動しました。その後、私はAutomapper 5.0.2パッケージを使うことができました

26
Mike

Visual Studio>ツール>拡張機能とアップデートに移動します。

左側のアコーディオンメニューで[アップデート]を探し、[Visual Studioギャラリー]に移動します。

あなたはNugetのアップデートを見つけるでしょう。

Nugetパッケージを更新して、プロジェクトをインストールまたはビルドしてみてください。

ありがとう、GT

17
Ganesh Todkar

あなたがVS2012と古いNugetバージョンで立ち往生しているならば、他の回避策:

  • VS 2012のNuget Package ManagerのCacheフォルダーを探します(Tools - Options - Nuget Package Managerを使用)。
  • お気に入りのZipツールでAutoMapper.5.x.x.nupkgを開く
  • ファイルAutoMapper.nuspecを修正します - 私は単に.NETFramework4.5以外のすべての依存関係を削除しました
  • キャッシュフォルダーをNugetソースとして追加します(Tools - Options - Nuget Package Managerにもあります)。
  • AutomapperをコンソールまたはGUIのどちらかでインストールしますが、パッケージソースとして新しく追加されたキャッシュフォルダを最初に選択するようにしてください。

もちろん、Automapperの次のバージョンもおそらくインストールするために適応させる必要があるでしょう。

2
marapet

CSharpとAutoMapperの両方を削除しました。最初にCSharp(4.0.0.0)をインストールし、次にAutomapper(6.1.1.0)を追加しました。これで問題は解決しました。

0
rjose

これは、Automapperパッケージで使用されている.NETバージョンとプロジェクトの間に不一致があるように見えます。プロジェクトが使用している.NETのバージョンを確認できますか?

0
JTW

Visual Studio 2010でプロジェクトを開くときに、私はこの正確な問題を観察しました。

VS2017で開いた後、私は何のエラーもなくAutoMapperをインストールすることができました。

0
El-Ahrairah

Automapper 6.0.2 - nuget 2.8.8でこのエラーが発生します。これを機能させるために3.4.4にアップデートする必要がありました。

0
Leszek P