Как получить VS 2017 для установки зависимостей для пакетов, которые я пытаюсь установить? - PullRequest
0 голосов
/ 23 января 2019

Я читал учебное пособие по Lynda, в котором показывалось, как добавлять версии в мои API. Он сказал мне, чтобы установить пакет NuGet Microsoft.AspNetCore.Mvc.Versioning. Я попробовал это, и это дало мне ошибку, потому что это нуждалось в Microsoft.AspNetCore.Mvc.Core. Поэтому я попытался установить этот пакет, и, опять же, еще одну ошибку, потому что ему нужен был другой пакет.

Итак, я начал искать в Google способ привязки VS 2017 к установке NuGet. Ни один из ответов, которые я нашел, не был полезен. Я пытался управлять как packageReference и packages.config. «Разрешить выбор формата при первой установке пакета» не отмечен. И так далее.

Поэтому я решил просто включить и добавить все зависимости вручную. Мне пришлось установить 29 пакетов. Это заняло у меня более получаса, не считая времени, потраченного на погоню за кошкой вверх и вниз по лестнице, кричащей наверху моих легких.

Есть ли какой-то переключатель, который я забыл щелкнуть, или некоторые параметры, которые я не добавил, или Microsoft действительно думает, что мы можем захотеть установить пакет без установки его зависимостей?

1 Ответ

0 голосов
/ 24 января 2019

Как получить VS 2017 для установки зависимостей для пакетов, которые я пытаюсь установить?

Я воспроизвел эту проблему на моей стороне. Это правильное поведение для nuget. Это потому, что пакет, который вы хотите установить, имеет косвенную зависимость Microsoft.AspNetCore.Authentication.Abstractions (>= 2.2.0).

Примечание: (требуется версия > = 2.2.0 ).

Однако пакет по умолчанию для проекта API ядра .net также имеет такую ​​же косвенную зависимость Microsoft.AspNetCore.Authentication.Abstractions (>= 2.1.1 && < 2.2.0) с ограничением версии (> = 2.1.1 && <2.2.0) </strong>.

Примечание: ограничение версии (> = 2.1.1 && <2.2.0) </strong>.

Это конфликтует с зависимостью пакета Microsoft.AspNetCore.Mvc.Versioning. Вот причина, по которой nuget не устанавливает зависимости для пакета.

Чтобы решить эту проблему , нам просто нужно обновить целевую платформу ( Щелкните правой кнопкой мыши проект-> Свойства-> Целевая платформа ) с .NET Core 2.1 до .NET Core 2.2 для вашего проекта .net core API.

Если у вас нет версии 2.2.0, пожалуйста, скачайте ее отсюда и установите:

.NET SDK для Visual Studio

После обновления целевой платформы до 2.2 пакет по умолчанию Microsoft.AspNetCore.App будет обновлен до Microsoft.AspNetCore.App 2.2.0, а зависимость обновлена ​​до Microsoft.AspNetCore.Authentication.Abstractions(>= 2.2.0 && < 2.3.0). Так что он совместим с зависимостями пакета Microsoft.AspNetCore.Mvc.Versioning 3.1.1.

Теперь я могу установить пакет Microsoft.AspNetCore.Mvc.Versioning 3.1.1 с его зависимостью.

Надеюсь, это поможет.

...