项目引用和 Nuget 包引用冲突 - 同名键已存在

Project Reference & Nuget Package Reference Conflict - Key with same name already exists

使用 Visual Studio 2019 版本 16.6.0 预览版 2.1 - 我有两个项目的解决方案:

项目 A - 具有 nuget 包依赖项 Package1

项目 B - 具有对 项目 A

的项目引用

我现在还要求 项目 B 包含相同的 nuget 包依赖项 包 1

当我尝试安装软件包时出现错误 "An item with the same key has already been added"。

我看过一些讨论这个问题的帖子,但没有确定的解决方案。出于调试目的,我想保留 Project A 作为 Project B 的项目参考。知道我该如何解决这个问题吗?

Project Reference & Nuget Package Reference Conflict - Key with same name already exists

首先,尝试在Porject B中删除Project A的Project Reference,然后在Project B中安装Package,然后添加Project的Project Reference如果有效,项目 B.Check 中的 A。

如果不是,我认为您的项目中的 nuget 包存在一些不同的冲突版本。参见 。您应该删除重复的包。试试这些:

1)如果你使用Packages.config,你应该检查是否有像这样的两个重复包:

  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40" />
  <package id="Newtonsoft.Json" version="5.0.8" targetFramework="net40" />

删除旧的,保留最新的。同时检查你的xxx.csproj文件,删除重复的节点。

2)删除项目A和项目B的bin,obj文件夹

3) clean local nuget caches 并删除您解决方案下的 packages 文件夹(xxxx\Projects\MyProjName\packages).

之后运行update-package -reinstallTools-->Nuget Package Manager-->Package Manager Console.

同时进行项目 A 和项目 B。

4) 然后在 Project B 上安装 Package 1 以测试问题是否仍然存在。