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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (73)

我试图将AutoMapper作为依赖项添加到VisualStudioPremium#number0#上使用NuGet的项目,但失败了。

上面写着:

操作失败 “AutoMapper”已经为“Microsoft.CSharp”定义了一个依赖项。

我能够添加其他依赖项。

我正在为VS 2012使用软件包管理器的最后一个版本:

Nuget包装管理器2.8.60318.667

我该查些什么?

提问于
用户回答回答于

目前版本的Automapper似乎存在问题:

我试过以前的版本,它起作用了:

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 Package Manager太旧了。你需要NuGet 2.12,因为它支持AutoMapper 5.0.1 NuGet包使用的较新的.NETStandard框架。

AutoMapper具有一个组依赖关系,它指定了.NETStandard的目标框架。由于您的NuGet Package Manager版本太旧,因此无法识别此目标框架并将其转换为未知的目标框架,并且最终会出现重复的框架,因为.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包。

所属标签

可能回答问题的人

  • 腾讯云数据库 TencentDB

    腾讯云 · 产品团队 (已认证)

    301 粉丝2 提问44 回答
  • EatRice

    17 粉丝0 提问169 回答
  • 华讯云

    1 粉丝0 提问151 回答
  • 成都加米谷大数据

    11 粉丝0 提问16 回答

扫码关注云+社区

领取腾讯云代金券