.NET - Управление общими зависимостями пакетов NuGet с разными версиями. - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два решения: SolutionA и SolutionB (в отдельных репозиториях).Оба решения имеют зависимости от Package1, но проекты в SolutionA используют версию 1.0.0 этого пакета, а проекты в SolutionB используют 2.0.0.

Теперь возникает необходимость упаковать и опубликовать пакет NuGet библиотекив SolutionB, который будет использоваться в библиотеках SolutionA.

Как и ожидалось, при попытке этого я вижу ошибку понижения.Поэтому я решил понизить версию Package1 в SolutionB до версии 1.0.0.Код все еще компилируется;нет никаких плохих побочных эффектов во время выполнения.Затем я упаковываю, публикую и пытаюсь повторно выполнить редактирование SolutionA : на этом этапе я попытался переустановить самую последнюю версию пакета SolutionB NuGet, удалив его полностью, а затем переустановив и просто понизив версию непосредственно в диспетчере пакетов NuGet (з / е это называется ..) в VS

В этот момент я все еще вижу ошибку понижения, ссылаясь на то, что зависимость SolutionB использует более высокую версию, но в действительностибольше нет.Почему?

Halp !!

edit: добавление ошибки для справки.Я выбрал Newtonsoft.Json для демонстрации.Это легко воспроизвести с помощью любого пакета NuGet с несколькими версиями

Ошибка NU1605 Обнаружено понижение пакета: Newtonsoft.Json с 11.0.2 до 9.0.1.Ссылка на пакет прямо из проекта, чтобы выбрать другую версию.TestProjectA -> TestProjectB 1.0.0 -> Newtonsoft.Json (> = 11.0.2) TestProjectA -> Newtonsoft.Json (> = 9.0.1)

Зависимости TestProjectA от NuGet:

enter image description here

Зависимости TestProjectB NuGet:

enter image description here

1 Ответ

0 голосов
/ 14 октября 2018

Убедитесь, что при изменении TestProjectB вы либо увеличиваете версию пакета NuGet, либо очищаете локальные кэши NuGet (dotnet nuget locals all --clear).

...