在我的项目中,我正在使用类库。现在,我将该类库设置为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软件包时已添加了具有相同 key 的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31406071/

10-13 06:42