NuGet Package Manager: 'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'

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.


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

I ended up needing to update NuGet.exe that was included in the solution to be able to build NuGet packages by running:

nuget.exe update -self