无法更新或安装软件包:已添加具有相同密钥的项目

Sam*_*Sam 11 nuget

问题

在特定项目中,我无法更新或安装任何NuGet包.当我尝试使用NuGet GUI这样做时,它会做一些工作然后停止而不说什么.当我尝试使用包管理器控制台时,我得到了这个输出:

PM> Update-Package –reinstall EntityFramework
Attempting to gather dependencies information for multiple packages with respect to project 'SmartCentre', targeting '.NETFramework,Version=v4.5.2'
Update-Package : An item with the same key has already been added.
At line:1 char:15
+ Update-Package <<<<  –reinstall EntityFramework
    + CategoryInfo          : NotSpecified: (:) [Update-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand
Run Code Online (Sandbox Code Playgroud)

环境

  • Visual Studio Professional 2015 Update 1
  • NuGet 3.3.0.167

我试过的

  • 删除packages文件夹
  • 重新启动Visual Studio
  • 重新启动计算机

Sam*_*Sam 16

原来,该packages.config文件有两个不同版本的重复:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <!-- ... -->
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.2" targetFramework="net40" />
  <!-- ... -->
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40" />
  <package id="Newtonsoft.Json" version="5.0.8" targetFramework="net40" />
  <!-- ... -->
</packages>
Run Code Online (Sandbox Code Playgroud)

删除重复项后,问题就不复存在了:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <!-- ... -->
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.2" targetFramework="net40" />
  <!-- ... -->
  <package id="Newtonsoft.Json" version="5.0.8" targetFramework="net40" />
  <!-- ... -->
</packages>
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,它也解决了我的问题。很悲哀地看到,微软不能做任何比这更好的,而报告的issue.If已经发现,有一个重复,即键已经存在。然后我不知道为什么他们这么难告诉我们哪把钥匙!他们的未来非常悲惨。万岁开源。 (2认同)

nan*_*akw 6

如果有人使用 net core 并遇到此错误,请使用命令提示符来获取详细的错误消息。

请运行dotnet restore 查找冲突版本。

上述命令需要从 pjt 文件所在的文件夹运行。

前任:

 Unable to satisfy conflicting requests for '************': (>= 1.0.1)

 (via package/************ 1.0.22), ************ (>= 1.0.1)

 (via project/************ 1.0.0) Framework: 

 (.NETStandard,Version=v2.0)C:\Users\************\Source\************API.csproj]
Run Code Online (Sandbox Code Playgroud)