首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NuGet包管理器:'AutoMapper‘已经为'Microsoft.CSharp’定义了一个依赖项

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

Stack Overflow用户
提问于 2016-07-07 22:22:49
回答 10查看 72.2K关注 0票数 78

我试图在Visual Studio Premium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但失败了。

上面写着:

操作失败

“AutoMapper”已为“Microsoft.CSharp”定义了依赖项。

我可以添加其他依赖项。

我使用的是VS2012的最新版本的包管理器:

NuGet包管理器2.8.60318.667

有什么想法我应该检查什么?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2016-07-07 22:38:15

似乎是当前版本的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
票数 41
EN

Stack Overflow用户

发布于 2016-07-08 00:58:34

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

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

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

不幸的是,NuGet 2.12不适用于Visual Studio2012,但适用于Visual Studio2013。

因此,要么你需要更新到Visual Studio2013或更高版本,要么你将不得不使用不支持.NETStandard的旧版AutoMapper NuGet包。

票数 95
EN

Stack Overflow用户

发布于 2016-08-12 02:09:55

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

nuget.exe update -self

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38247961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档