[英]NuGet Package Manager: 'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'
我正在尝试在Visual Studio Premium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但是失败。
它说:
手术失败
“ AutoMapper”已经具有为“ Microsoft.CSharp”定义的依赖项。
我能够添加其他依赖项。
我正在使用VS 2012的包管理器的最新版本:
NuGet软件包管理器2.8.60318.667
有什么想法应该检查吗?
问题是您的NuGet软件包管理器太旧了。 您需要NuGet 2.12,因为它支持AutoMapper 5.0.1 NuGet程序包正在使用的较新的.NETStandard框架。
AutoMapper具有组依赖关系,它指定.NETStandard的目标框架。 由于您的NuGet软件包管理器版本太旧,因此无法识别此目标框架并将其转换为Unknown目标框架,并且由于该.NETStandard在该NuGet软件包中使用了几次,因此最终会得到重复的框架。 这会导致错误:
'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'
不幸的是,NuGet 2.12不适用于Visual Studio 2012,但适用于Visual Studio 2013。
因此,您需要更新到Visual Studio 2013或更高版本,或者必须使用不支持.NETStandard的旧版AutoMapper NuGet程序包。
当前版本的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软件包管理器,则答案是:
PM> Install-Package AutoMapper -Version 4.2.1
我最终需要更新解决方案中包含的NuGet.exe,以便能够通过运行以下命令来构建NuGet软件包:
nuget.exe update -self
我在VS2013上遇到了同样的问题。 我必须更新到VS2013 Update 5并在https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix上获取VS2013的最新nuget发行版
完成后,我重新启动了Visual Studio。 之后,我可以使用Automapper 5.0.2软件包
转到Visual Studio>工具>扩展和更新
在左侧手风琴菜单中找到“更新”,转到Visual Studio Gallery。
您将找到Nuget的更新。
更新nuget软件包,然后尝试安装或构建项目。
谢谢,GT
如果您仍然使用VS2012和旧的Nuget版本,则可以采用另一种解决方法:
Tools
- Options
Nuget Package Manager
) AutoMapper.5.xxnupkg
AutoMapper.nuspec
我只是删除了.NETFramework4.5
以外的所有依赖.NETFramework4.5
Tools
- Options
Nuget Package Manager
) 当然,可能也需要修改Automapper的下一个版本才能安装它。
看起来Automapper软件包使用的.NET版本与您的项目之间不匹配。 您可以确认项目使用的.NET版本吗?
Automapper 6.0.2-nuget 2.8.8给出此错误。 需要更新到3.4.4才能正常工作。
删除了CSharp和AutoMapper。 首先安装CSharp(4.0.0.0),然后添加Automapper(6.1.1.0)。 这为我解决了问题。
使用Visual Studio 2010打开项目时,我观察到了这个确切的问题。
使用VS2017打开后,我能够无任何错误地安装AutoMapper。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.