NuGet Package Manager: 'AutoMapper' alread

2019-01-06 15:55发布

I'm trying to add AutoMapper as a dependency to a project using NuGet on Visual Studio Premium 2012, but it fails.

It says:

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

I'm able to add other dependencies.

I'm using the last version of the package manager for VS 2012:

NuGet Package Manager 2.8.60318.667

Any ideas what should I check?

10条回答
再贱就再见
2楼-- · 2019-01-06 16:28

Removed both CSharp and AutoMapper. Installed CSharp (4.0.0.0) first and then added Automapper (6.1.1.0). This resolved the problem for me.

查看更多
地球回转人心会变
3楼-- · 2019-01-06 16:29

Seems to be a problem with the current version of automapper:

AutoMapper 5.0.0 Tuesday, June 28, 2016

I tried with the previous version and it works:

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

So, if you can't update NuGet Package Manager, the answer is:

PM> Install-Package AutoMapper -Version 4.2.1
查看更多
疯言疯语
4楼-- · 2019-01-06 16:31

I observed this exact problem when opening a project with Visual Studio 2010.

After opening with VS2017, I was able to install AutoMapper without any error.

查看更多
一纸荒年 Trace。
5楼-- · 2019-01-06 16:37

This looks like a mismatch between the .NET version used by the Automapper package and your project. Can you confirm the .NET version that your project is using?

查看更多
Evening l夕情丶
6楼-- · 2019-01-06 16:38

Automapper 6.0.2 - nuget 2.8.8 gives this error. Needed to update to 3.4.4 to get this working.

查看更多
smile是对你的礼貌
7楼-- · 2019-01-06 16:40

The problem is that your NuGet Package Manager is too old. You need NuGet 2.12 since this supports the newer .NETStandard frameworks that the AutoMapper 5.0.1 NuGet package is using.

The AutoMapper has a group dependency which specifies a target framework of .NETStandard. Since your version of NuGet Package Manager is too old it does not recognise this target framework and converts it to an Unknown target framework and you end up with duplicate frameworks since there .NETStandard is used a few times in that NuGet package. This causes the error:

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

Unfortunately NuGet 2.12 is not available for Visual Studio 2012 but is available for Visual Studio 2013.

So either you need to update to Visual Studio 2013 or above, or you will have to use the older AutoMapper NuGet package which does not support .NETStandard.

查看更多
登录 后发表回答