Как и большинство людей, я использую пакет 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, должны будут знать об этом и выбрать, какой пакет они хотят установить. Но, учитывая, что он содержит критические изменения, может быть, это лучше?
Ответы:
На мой взгляд, это ошибка автора пакета. Обновление, которое удаляет поддержку нескольких браузеров, должно было быть вынесено в отдельный пакет 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. В прошлом были проблемы с диспетчером пакетов пользовательского интерфейса, не соблюдающим
allowedVersions
атрибут ( https://nuget.codeplex.com/workitem/1891 ), поэтому вам, возможно, придется использовать командную строку, если вы столкнетесь с этой проблемой.Однако ничто из этого не решает проблему того, что происходит при обновлении ветки 1.9, потому что канал пакета теперь будет на дорожке 2.0+. Я предполагаю, что вам придется переключиться на новый пакет nuget, специально написанный для поддержки «устаревшей» версии 1.x, или каждый раз копировать скрипт вручную.
В любом случае, я обновлю это, когда узнаю больше.
Редактировать:
Автор пакета заявил, что в будущем будут поддерживаться пути 1.x и 2.x, т. Е. Канал пакета будет содержать параллельные версии, а не разделять их. Насколько я понимаю, решение состоит в использовании ограничения версии на уровне конфигурации пакета, чтобы предотвратить обновление до версии 2.x, например:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(Указание как минимальной, так и максимальной версии
allowedVersions
должно позволить обновление без риска перехода на версию 2.x. Кстати, правая скобка выглядит странно, но правильная - это означает «меньше версии 2».)источник
jquery1
на nuget есть пакет, который отслеживает только ветку 1.x.как насчет указать версию?
PM> Установочный пакет jQuery -Version 1.9.1
Ссылки: http://nuget.org/packages/jQuery/1.9.1
источник
Теперь у Nuget есть пакет jquery1, который отслеживает только ветку 1.x, поэтому вы сможете заменить основной пакет jQuery для этого.
источник
Я объединил два решения сверху для @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, и это сработало как шарм.
источник