在我的项目中,我使用的是类库。现在我将该类lib作为NuGet包,删除了类lib,当尝试安装包时出现此错误:“已添加具有相同键的项目”?
答案 0 :(得分: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"
}
}
}
答案 1 :(得分:9)
在从其他开发人员那里获取代码时,我在很多情况下遇到过这个问题。其他用户提到的问题是我遇到过的一些问题。所以这里列出了我过去为解决这个问题所做的一些事情,也是我刚刚遇到的一个新事物:
检查packages.config中包含 DIFFERENT 版本的重复引用 - 即使您尝试安装完全不同的软件包,此错误也可能是由另一个软件包问题引起的。我试图安装 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" />
答案 2 :(得分:4)
我遇到了同样的问题。它一直告诉我这个&#34;已经添加了一个具有相同键的项目&#34;,即使它不在我的引用中,也不在我的packages.config
中。
最终,我设法通过在Visual Studio中显示所有文件来修复它。在bin
文件夹中,我找到了我试图通过Nuget安装的.dll
的引用。删除那个之后,问题就消失了。
也许这也为你解决了这个问题。
答案 3 :(得分:0)
我也遇到了同样的问题。我删除了包并从Web.Config文件中删除了以下项目,然后安装了包 - 问题解决了!
section name =“ajaxControlToolkit”type =“AjaxControlToolkit.AjaxControlToolkitConfigSection,AjaxControlToolkit”
答案 4 :(得分:0)
如果有人涉足.Net Core和.Net标准可移植类库,这些类型的错误经常发生。
对我而言,我通常将所有横切关注点作为我自己的模块化包装。我发现,如果我的包包含许多其他依赖项,只需通过修改project.json依赖项部分添加包依赖项就会产生令人难以置信的错误,从而产生上述行为。
通常,答案是删除所有依赖项并使用正确的NuGet包管理工具从我的私有源添加包,这将导致Microsoft的外部依赖项的条款和条件对话框呈现。
完全删除并重新创建CLI并不罕见!
.Net Core和Standard永远不应该被标记为RTM。希望当.Net Standard 2.0成为现实时,一切都会变得更好。但是现在如果你正在尝试使用.Net Standard和Core进行构建,我现在确切地知道你的感受,希望这个答案对你很有帮助......
答案 5 :(得分:0)
这使我一天中的大部分时间都在工作。尝试安装软件包时出现同样的问题。最后尝试安装具有相同结果的其他软件包。事实证明,packages.config中的任何重复项(具有不同版本)都会导致此错误。删除了两个重复版本的旧版本,现在我可以再次安装软件包了。
答案 6 :(得分:0)
我的问题是多年以后出现的... VS2019 并且我在 .net 5 中遇到了这个错误。
我在构建包含的项目时遇到此错误,但该项目包含的项目不在解决方案中。
我构建的所有项目都出现了相同的错误,因此它看起来像是我正在构建的任何项目的当前 nuget 包集。一旦我删除了缺少包含的项目或将依赖项目添加到解决方案中,它就解决了。