C# NuGet软件包管理器:';AutoMapper';已经为';定义了依赖项;微软.CSharp';
我试图在VisualStudioPremium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但失败了 它说: 操作失败C# NuGet软件包管理器:';AutoMapper';已经为';定义了依赖项;微软.CSharp';,c#,visual-studio-2012,nuget,automapper,C#,Visual Studio 2012,Nuget,Automapper,我试图在VisualStudioPremium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但失败了 它说: 操作失败 “AutoMapper”已为定义了依赖项 “Microsoft.CSharp” 我可以添加其他依赖项 我正在使用VS 2012最新版本的软件包管理器: NuGet软件包管理器2.8.60318.667 你知道我应该检查什么吗?这看起来像是Automapper软件包使用的.NET版本与您的项目不匹配。您能确认您的项目正在使用的.NET版本吗?当前版本的a
“AutoMapper”已为定义了依赖项 “Microsoft.CSharp” 我可以添加其他依赖项 我正在使用VS 2012最新版本的软件包管理器: NuGet软件包管理器2.8.60318.667
你知道我应该检查什么吗?这看起来像是Automapper软件包使用的.NET版本与您的项目不匹配。您能确认您的项目正在使用的.NET版本吗?当前版本的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包管理器太旧。您需要,因为它支持AutoMapper 5.0.1 NuGet包正在使用的较新的.NETStandard框架 自动映射有一个组依赖项,它指定.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软件包。如果您仍然使用VS2012和旧NuGet版本,则需要另一种解决方法:
- 查找VS 2012的Nuget Package Manager的缓存文件夹(使用
工具
-
选项
-
)Nuget Package Manager
- 使用您喜爱的Zip工具打开
AutoMapper.5.x.x.nupkg
- 修改文件
-我只是删除了除AutoMapper.nuspec
.NETFramework4.5
- 将缓存文件夹添加为Nuget源(也在
工具
-
选项
-
Nuget软件包管理器中)
- 使用控制台或GUI安装Automapper,但请确保首先选择新添加的缓存文件夹作为包源
当然,为了安装Automapper,下一个版本可能也需要修改。我在VS2013上也遇到过同样的问题。我必须更新到VS2013更新5,并在上获取VS2013的最新nuget发行版
完成后,我重新启动了VisualStudio。之后,我能够使用Automapper 5.0.2软件包我最终需要更新解决方案中包含的NuGet.exe,以便通过运行以下命令来构建NuGet软件包:
nuget.exe更新-self
转到Visual Studio>工具>扩展和更新
在左侧的“手风琴”菜单中查找更新,转到Visual Studio Gallery
您将找到Nuget的更新
更新nuget包并尝试安装或生成项目
谢谢,
GTAutomapper 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,没有任何错误。可能重复@Venky这个问题与我的问题之间的区别是,我使用的是nugget package Manager的最新版本。我遇到了这个问题,并且从NuGet Packager的VSTS构建任务中得到了这个准确的错误。我降级到4.2.1,这修复了错误。降级之前,我试图升级到5.0.2,但它仍然给了我这个错误。我得到了这个问题:找不到包“AutoMapper”的版本“4.2.1”。在第1行:char:1+安装包AutoMapper-版本4.2.1正确答案是Matt Ward的高票答案。这个解决方案确实有效,但它是一个非常短期的解决方案…@MPritchard Matt的解决方案不适用于VS2012,这是我的问题之一Hanks Matt,我想你的意思是VS2012“不可用”,因为超出我能力的原因,我坚持使用VS2012,所以我也会使用以前的版本。谢谢你救了我一天,为我工作!谢谢(在安装新版本的Nuget后,我需要重新启动VS),这为我解决了这个问题。这应该是正确的答案,因为实际上降级AutoMapper并不是一个正确的答案。除了今天使用Nuget 4.5.1仍然会发生这种情况。这似乎是一个特定于我的问题:)
'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'