Visual Studio Premium 2012でNuGetを使用してAutoMapperを依存関係としてプロジェクトに追加しようとしていますが、失敗します。
それは言います:
操作に失敗しました
'AutoMapper'は既に 'Microsoft.CSharp'用に定義された依存関係を持っています。
私は他の依存関係を追加することができます。
私はVS 2012用の最新版のパッケージマネージャを使用しています。
NuGetパッケージマネージャ2.8.60318.667
何をチェックすればいいですか?
現在のバージョンの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
問題はあなたの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パッケージを使用する必要があります。
次のコマンドを実行して、NuGetパッケージをビルドできるようにするために、ソリューションに含まれているNuGet.exeを更新する必要がありました。
nuget.exe update -self
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パッケージを使うことができました
Visual Studio>ツール>拡張機能とアップデートに移動します。
左側のアコーディオンメニューで[アップデート]を探し、[Visual Studioギャラリー]に移動します。
あなたはNugetのアップデートを見つけるでしょう。
Nugetパッケージを更新して、プロジェクトをインストールまたはビルドしてみてください。
ありがとう、GT
あなたがVS2012と古いNugetバージョンで立ち往生しているならば、他の回避策:
Tools
- Options
- Nuget Package Manager
を使用)。AutoMapper.5.x.x.nupkg
を開くAutoMapper.nuspec
を修正します - 私は単に.NETFramework4.5
以外のすべての依存関係を削除しましたTools
- Options
- Nuget Package Manager
にもあります)。もちろん、Automapperの次のバージョンもおそらくインストールするために適応させる必要があるでしょう。
CSharpとAutoMapperの両方を削除しました。最初にCSharp(4.0.0.0)をインストールし、次にAutomapper(6.1.1.0)を追加しました。これで問題は解決しました。
これは、Automapperパッケージで使用されている.NETバージョンとプロジェクトの間に不一致があるように見えます。プロジェクトが使用している.NETのバージョンを確認できますか?
Visual Studio 2010でプロジェクトを開くときに、私はこの正確な問題を観察しました。
VS2017で開いた後、私は何のエラーもなくAutoMapperをインストールすることができました。
Automapper 6.0.2 - nuget 2.8.8でこのエラーが発生します。これを機能させるために3.4.4にアップデートする必要がありました。