NuGet包管理器:'AutoMapper'已经为'Microsoft.CSharp'定义了一个依赖项

pom*_*ber 76 c# automapper nuget visual-studio-2012

我试图在Visual Studio Premium 2012上使用NuGet将AutoMapper添加为项目的依赖项,但它失败了.

它说:

操作失败
'AutoMapper'已经为'Microsoft.CSharp'定义了依赖关系.

我可以添加其他依赖项.

我正在使用VS 2012的最新版本的软件包管理器:

NuGet包管理器2.8.60318.667

任何想法我应该检查什么?

Mat*_*ard 94

问题是您的NuGet包管理器太旧了.您需要NuGet 2.12,因为它支持AutoMapper 5.0.1 NuGet包使用的较新的.NETStandard框架.

AutoMapper具有组依赖关系,它指定.NETStandard的目标框架.由于您的NuGet Package Manager版本太旧,因此无法识别此目标框架并将其转换为未知目标框架,并且您最终会遇到重复框架,因为在该NuGet包中使用了.NETStandard几次.这会导致错误:

'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'
Run Code Online (Sandbox Code Playgroud)

不幸的是,NuGet 2.12不适用于Visual Studio 2012,但可用于Visual Studio 2013.

因此,您需要更新到Visual Studio 2013或更高版本,否则您将不得不使用不支持.NETStandard的旧版AutoMapper NuGet包.


pom*_*ber 41

似乎是当前版本的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'.
Run Code Online (Sandbox Code Playgroud)

因此,如果您无法更新NuGet Package Manager,答案是:

PM> Install-Package AutoMapper -Version 4.2.1
Run Code Online (Sandbox Code Playgroud)


bka*_*aid 30

我最终需要更新解决方案中包含的NuGet.exe,以便能够通过运行来构建NuGet包:

nuget.exe update -self


Mik*_*ike 26

我在VS2013上遇到了同样的问题.我必须更新到VS2013 Update 5并在https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix上获取VS2013的最新nuget发行版

一旦完成,我就可以使用Automapper 5.0.2软件包了

  • 为我工作!谢谢.(我需要在安装新版Nuget后重新启动VS) (3认同)
  • 这在VS2013 Update 5上对我有用.谢谢! (2认同)

小智 17

转到Visual Studio>工具>扩展和更新

在左手风琴菜单中找到更新,转到Visual Studio库.

你会发现Nuget的更新.

更新nuget包并尝试安装或构建项目.

谢谢,GT