我试图在Visual Studio Premium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但失败了。
上面写着:
操作失败
“AutoMapper”已为“Microsoft.CSharp”定义了依赖项。
我可以添加其他依赖项。
我使用的是VS2012的最新版本的包管理器:
NuGet包管理器2.8.60318.667
有什么想法我应该检查什么?
发布于 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
发布于 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包。
发布于 2016-08-12 02:09:55
我最终需要更新包含在解决方案中的NuGet.exe,以便能够通过运行以下命令来构建NuGet包:
nuget.exe update -self
https://stackoverflow.com/questions/38247961
复制相似问题