Могу ли я сохранить Nuget на пути jQuery 1.9.x/1.x(вместо обновления до 2.x)?

Как и большинство людей, я использую пакет jQuery Nuget для обновления.

Однако с выпуском jQuery 2.0 мне теперь предлагается обновить jQuery 1.9.1 до 2.0. В это время у меня достаточно посетителей на моих сайтах, используя "старые" версии браузеров, которые я предпочитаю придерживаться 1.9.x и jQuery Migrate.

Можно ли все-таки сказать Nuget придерживаться определенной версии (1.9.x) при проверке обновлений пакета (jQuery или иначе)?

Я использую расширения Visual Studio 2010/2012, но если мне нужно использовать интерфейс командной строки в VS, чтобы обойти эту проблему, я обязательно буду.

Примечание. Одна вещь, на мой взгляд, заключается в том, что они перепутали обновление. Поскольку jQuery 1.9.x и 2.0.x/2.x довольно разные, кажется, что они должны были создать пакет jQuery 2 (.0.x |.x).

Конечно, люди, которые действительно хотят обновить до 2.x, должны знать об этом и переключать пакет, который они хотят установить. Но учитывая, что он содержит нарушения, возможно, это лучше?

Ответ 1

По-моему, это ошибка в части автора пакета. Обновление, которое удаляет поддержку для нескольких браузеров, должно быть сделано в отдельном пакете nuget версии 2 и объявлено соответствующим образом, то есть со значительными отказами. Библиотека 1.9 не является наследственной и в будущем будет получать дополнительные обновления. Я связался с автором пакета и напишу больше, если получаю ответ.

В то же время вы можете ограничить версию своего пакета, используя следующий синтаксис в packages.config:

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />

Здесь больше информации о ограничениях версии:

http://docs.nuget.org/docs/reference/Versioning

После изменения конфигурации обновление не должно обновлять ваш пакет jQuery до версии 2.0. В прошлом проблемы с менеджером пакетов UI не соответствовали атрибуту allowedVersions (https://nuget.codeplex.com/workitem/1891), поэтому вам, возможно, придется использовать командную строку, если вы столкнулись с этой проблемой.

Однако ничто из этого не решает проблему того, что происходит, когда ветвь 1.9 обновляется, потому что теперь фид пакета будет на дорожке 2.0+. Я предполагаю, что вам придется переключиться на новый пакет nuget, специально написанный для поддержки версии "legacy" 1.x или скопировать script вручную каждый раз.

В любом случае, я обновлю это, когда узнаю больше.

Edit:

Автор пакета заявил, что в будущем будут поддерживаться пути 1.x и 2.x, т.е. фид пакетов будет содержать параллельные версии вместо их разделения. Насколько я вижу, решение заключается в использовании ограничения версии на уровне конфигурации пакета, чтобы предотвратить обновление версии 2.x, например:

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />

(Указание как минимальных, так и максимальных версий в allowedVersions должно допускать обновление без риска переключения на версию 2.x. Кстати, правая скобка выглядит странно, но правильно - это означает "меньше версии 2",.)

Ответ 2

как насчет того, чтобы указать версию?

PM > Установочный пакет jQuery -Version 1.9.1

Ссылки: http://nuget.org/packages/jQuery/1.9.1

Ответ 3

Теперь Nuget имеет пакет jquery1, который отслеживает только ветвь 1.x, поэтому вы можете поменять основной пакет jQuery для этот.

Ответ 4

Я объединил два решения сверху: @TeYoU

Сначала я установил пакет из консоли диспетчера пакетов:

Меню "Сервис" → Диспетчер пакетов библиотеки → Консоль диспетчера пакетов

PM> Install-Package jQuery -Version 1.9.1

Затем я отредактировал файл packages.config как @Dave R.:

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />

Затем я обновился до текущей версии, в настоящее время 1.10.2 с помощью Nuget Manager, и он работал как шарм.