安装NuGet软件包时已添加具有相同密钥的项

安装NuGet软件包时已添加具有相同密钥的项,nuget,Nuget,在我的项目中,我使用类库。现在我将该类库作为一个NuGet软件包,删除该类库,当尝试安装该软件包时,会出现此错误:“已添加具有相同密钥的项”?在我的示例中,当我的packages.config文件包含不允许的重复软件包ID时,我看到了此错误 您可以使用下面的PowerShell脚本查找解决方案中的所有重复包。它递归地查找所有packages.config文件,并根据packages.config文件检查重复的包ID $solutionFolder = "C:\MySolution" $nuget

在我的项目中,我使用类库。现在我将该类库作为一个NuGet软件包,删除该类库,当尝试安装该软件包时,会出现此错误:“已添加具有相同密钥的项”?

在我的示例中,当我的packages.config文件包含不允许的重复软件包ID时,我看到了此错误

您可以使用下面的PowerShell脚本查找解决方案中的所有重复包。它递归地查找所有packages.config文件,并根据packages.config文件检查重复的包ID

$solutionFolder = "C:\MySolution"
$nugetPackageFile = "packages.config"

$files = Get-ChildItem -Path $solutionFolder -Filter $nugetPackageFile -Recurse

foreach ($file in $files)
{
    [xml]$xml = Get-Content $file.FullName
    $nodes = Select-Xml "/packages/package/@id" $xml
    $packageIds = @{}

    foreach ($node in $nodes) {
        $packageId = $node.Node.'#text'
        try
        {
            $packageIds.Add($packageId, $packageId)
        }
        Catch [System.ArgumentException]
        {
            Write-Host "Found duplicate package in " $file.FullName ". Duplicate package: $packageId"
        }
    }
}

我也有同样的错误,在升级NuGet本身后得到了修复。使用工具->“扩展和更新”对话框更新NuGet。

我也遇到了同样的问题。它一直告诉我“已经添加了一个具有相同密钥的项目”,尽管它不在我的参考资料中,也不在我的
packages.config

最终我通过在VisualStudio中显示所有文件来修复它。在
bin
文件夹中,我找到了一个对
.dll
的引用,我正试图通过Nuget进行安装。在去掉那个之后,问题就消失了


也许这也能帮你解决问题。

我也面临同样的问题。我从Web.Config文件中删除了包和以下项,然后重新安装了包-问题解决了


section name=“ajaxControlToolkit”type=“ajaxControlToolkit.AjaxControlToolkitConfigSection,ajaxControlToolkit”

我从其他开发人员那里获取代码时,多次遇到此问题。其他用户提到的问题是我遇到的一些问题。下面是我过去为解决这个问题所做的一系列事情,也是我刚刚遇到的一个新问题:

  • 重新启动Visual Studio时,NuGet有时会出于某种原因引用错误的文件(这是一种非常常见的情况和解决方案)
  • 在工具>扩展和更新中更新NuGet Manager。。。(如@ravinsp所述)
  • 清理并重建您的解决方案。旧DLL可能会把事情搞砸(正如@Jules所提到的)
  • 检查packages.config中版本不同的重复引用-即使您尝试安装完全不同的包,此错误也可能是由另一个包问题引起的。我试图安装OctoPack,但出现此错误是由System.Spatial引起的。My packages.config中有以下两行:


    • 这让我一天的大部分时间都在忙。尝试安装软件包时出现相同问题。最后尝试安装一个不同的包,结果相同。事实证明,packages.config中的任何重复(具有不同版本)都会导致此错误。删除了两个副本的旧版本,现在我可以再次安装软件包。

      我也有同样的问题,但在运行此脚本后,控制台没有显示任何内容。因此,我猜在我的情况下,没有重复的,但仍在安装或更新nuget packages显示错误“已添加具有相同密钥的项”是的,packages.config中存在需要删除的重复密钥。关键的是,这与您当前使用的Nuget软件包无关。在错误的合并后发现我有一个重复的密钥,这不是一条很好的消息!解决我的问题,谢谢。另外,对于理解缓慢的人(就像我一样)-这不是文件中已经存在的新包的原始文件,它可能是由任何包名的重复输入造成的,例如2个不同版本的Newtonsoft.Json包。这个建议很令人惊讶,VS2015对我来说有点问题,但是在工具->扩展和更新中对软件包进行了一些内部管理之后,我看到的NuGet安装软件包问题得到了解决。谢谢。即使存在软件包重复的问题,将NuGet更新到最新版本也可以让NuGet优雅地处理重复的软件包。在我的ccase中,我有最新的更新(2016-09),但dupllicate条目是问题的原因。我很想对此进行一些故障排除-但这也为我解决了问题!“检查packages.config中不同版本的重复引用”选项是我的解决方案。谢谢