Конфликт между ссылкой на проект и ссылкой на пакет Nuget - ключ с таким именем уже существует - PullRequest
0 голосов
/ 11 апреля 2020

Использование Visual Studio 2019 версии 16.6.0 Preview 2.1 - У меня есть решение с двумя проектами:

Проект A - Имеет зависимость от пакета nuget Package1

Проект B - Имеет ссылку на проект Проект A

Теперь мне также требуется, чтобы Проект B включал в себя тот же самый nuget зависимость пакета Пакет 1

Когда я пытаюсь установить пакет, я получаю сообщение об ошибке «Элемент с тем же ключом уже добавлен».

Я видел несколько постов, которые обсуждают это, но нет окончательного решения. В целях отладки я хочу сохранить Проект A в качестве ссылки на проект для Проект B . Любая идея, как я могу решить для этого?

1 Ответ

1 голос
/ 13 апреля 2020

Ссылка на проект и ссылка на пакет Nuget Конфликт - ключ с таким именем уже существует

Сначала , попробуйте удалить ссылку на проект Project A в Porject B, затем установите пакет в проекте B, а затем добавьте ссылку на проект Project A в проекте B. Проверьте, работает ли он.

Если нет, я думаю, что в вашем проекте есть несколько разных конфликтующих версий пакета 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) delete bin, obj проектов A и B

3) очистить локальные кэши nuget и удалить папку packages в вашем решении (xxxx\Projects\MyProjName\packages).

После этого запустите update-package -reinstall в Tools -> Nuget Package Manager -> Package Manager Console.

Выполните как для проекта A, так и для проекта B.

4) и затем установите Package 1 на Project B, чтобы проверить, сохраняется ли проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...