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

use*_*415 18 nuget

在我的项目中,我使用的是类库.现在我将该类lib作为NuGet包,删除了类lib,当尝试安装包时出现此错误:"已添加具有相同键的项目"?

lvm*_*jer 27

在我的情况下,当我的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"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


rav*_*nsp 19

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

  • 这个建议太棒了,VS2015对我来说有点儿麻烦,但是我在工具 - >扩展和更新中做了一些小包装后我看到的NuGet安装包问题得到了解决.谢谢. (3认同)

Joh*_*ohn 9

从其他开发人员那里获取代码时,我在很多情况下遇到过这个问题.其他用户提到的问题是我遇到过的一些问题.所以这里列出了我过去为解决这个问题所做的事情,也是我刚刚遇到的新事物:

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

    <package id="System.Spatial" version="5.6.2" targetFramework="net45" />

    <package id="System.Spatial" version="5.6.4" targetFramework="net45" />