Веб-приложение ASP.NET и NuGet — обновления пакетов не упоминаются

У меня есть веб-приложение ASP.NET (в формальном смысле это не проект "Веб-сайт"). Он ссылается на некоторое количество пакетов NuGet (назовем их все v1.0).

Если я отредактирую packages.config, указав ссылку на более новую версию одного из пакетов NuGet, и соберу, восстановлю пакеты или попытаюсь обновить пакеты, все будет нормально. Он загружает новый пакет, создает для него папку и все дела.

Проблема возникает, когда я пытаюсь сослаться на недавно добавленные классы или свойства в этом пакете. (Назовем это v2.0.)

IntelliSense не знает о них. Когда я пытаюсь понять, почему, я обнаруживаю, что это все еще ссылка на версию 1.0. Он загрузил 2.0, и в файле пакета указано, что он должен использовать 2.0, но если я явно не удалю ссылку на пакет и не добавлю его повторно, VisualStudio, похоже, будет придерживаться версии 1.0.

Я чувствую, что, должно быть, делаю что-то не так, или в какой-то момент что-то было неправильно настроено, но я не понимаю, что это может быть.

Любой совет?


person Anthony Compton    schedule 28.02.2014    source источник


Ответы (1)


Вы не должны обновлять packages.config, чтобы получать новые версии пакетов. Package Restore просто загружает файлы пакета. Не обновляет ссылки и т.д.

Чтобы обновить пакет, вы можете использовать диалоговое окно «Управление пакетами NuGet» для установки обновлений или использовать консоль диспетчера пакетов и ввести: Update-Package

person Kiliman    schedule 28.02.2014
comment
Что, если текущая используемая версия — 1.0, последняя версия — 3.0, а нужная мне (по какой-либо причине) версия — 2.0. Как конкретно обновить до 2.0? - person Anthony Compton; 28.02.2014
comment
Update-Package My.Package.Id -Version 2.0 (где My.Package.Id — это обновляемый пакет). Кстати: если вы добавите -Safe, Update-Package будет обновляться только до той же версии Major.Minor. Итак, 1.1.0 на 1.1.1, а не 1.2.0. - person Kiliman; 28.02.2014