我正在尝试在Visual Studio Premium 2012上使用NuGet将AutoMapper添加为项目的依赖项,但它失败了。
它说:
操作失败
'AutoMapper'已经定义了依赖关系 'Microsoft.CSharp'。
我可以添加其他依赖项。
我正在使用VS 2012的最新版本的软件包管理器:
NuGet Package Manager 2.8.60318.667
任何想法我应该检查什么?
答案 0 :(得分: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'
不幸的是,NuGet 2.12不适用于Visual Studio 2012,但可用于Visual Studio 2013。
因此,您需要更新到Visual Studio 2013或更高版本,否则您将不得不使用不支持.NETStandard的旧版AutoMapper NuGet包。
答案 1 :(得分: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'.
因此,如果您无法更新NuGet Package Manager,答案是:
PM> Install-Package AutoMapper -Version 4.2.1
答案 2 :(得分:30)
我最终需要更新解决方案中包含的NuGet.exe,以便能够通过运行来构建NuGet包:
nuget.exe update -self
答案 3 :(得分:26)
我在VS2013上遇到了同样的问题。我不得不更新到VS2013 Update 5并获得VS2013的最新nuget发行版 https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix
完成后,我重新启动了Visual Studio。之后,我能够使用Automapper 5.0.2包
答案 4 :(得分:17)
转到Visual Studio&gt;工具&gt;扩展和更新
在左手风琴菜单中查找更新,转到Visual Studio库。
你会找到Nuget的更新。
更新nuget包并尝试安装或构建项目。
谢谢, GT
答案 5 :(得分:2)
如果您遇到VS2012和旧的Nuget版本,还有其他解决方法:
Tools
- Options
- Nuget Package Manager
)AutoMapper.5.x.x.nupkg
AutoMapper.nuspec
- 我只是删除了除.NETFramework4.5
Tools
- Options
- Nuget Package Manager
)当然,下一版本的Automapper也可能需要进行调整才能安装。
答案 6 :(得分:0)
这看起来像Automapper包使用的.NET版本与您的项目不匹配。你能确认你的项目正在使用的.NET版本吗?
答案 7 :(得分:0)
Automapper 6.0.2 - nuget 2.8.8给出了这个错误。需要更新到3.4.4以使其正常工作。
答案 8 :(得分:0)
删除了CSharp和AutoMapper。首先安装CSharp(4.0.0.0),然后添加Automapper(6.1.1.0)。这解决了我的问题。
答案 9 :(得分:0)
在使用Visual Studio 2010打开项目时,我发现了这个确切的问题。
使用VS2017打开后,我能够安装AutoMapper而没有任何错误。