Comme la plupart des gens, j'utilise le package jQuery Nuget pour rester à jour.
Cependant, avec la sortie de jQuery 2.0, je suis maintenant invité à mettre à niveau jQuery 1.9.1 vers 2.0. À l'heure actuelle, j'ai suffisamment de visiteurs sur mes sites en utilisant des versions `` anciennes '' de navigateurs pour que je préfère m'en tenir à 1.9.x et jQuery Migrate .
Est-il possible de dire à Nuget de s'en tenir à une version particulière (1.9.x) lors de la vérification des mises à jour d'un paquet (jQuery ou autre)?
J'utilise les extensions Visual Studio 2010/2012, mais si je dois utiliser l'interface de ligne de commande dans VS pour contourner ce problème, je le ferai certainement.
Remarque: une chose dans mon esprit est qu'ils ont gâché la mise à jour. Puisque jQuery 1.9.x et 2.0.x / 2.x sont assez différents, il semble qu'ils auraient dû créer un package jQuery 2 (.0.x | .x) à la place.
Bien sûr, les personnes qui souhaitent réellement mettre à jour vers 2.x devront le savoir et changer le paquet qu'elles souhaitent installer. Mais étant donné qu'il contient des changements de rupture, c'est peut-être mieux?
Réponses:
À mon avis, c'est une erreur de la part de l'auteur du package. Une mise à jour qui supprime la prise en charge de plusieurs navigateurs aurait dû être transformée en un package nuget version 2 distinct et annoncée en conséquence, c'est-à-dire avec des clauses de non-responsabilité significatives. La bibliothèque 1.9 n'est pas héritée et recevra d'autres mises à jour dans le futur. J'ai été en contact avec l'auteur du package et j'écrirai plus si je reçois une réponse.
En attendant, vous pouvez contraindre la version de votre package à l'aide de la syntaxe suivante dans votre
packages.config
:<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Vous trouverez plus d'informations sur les contraintes de version ici:
http://docs.nuget.org/docs/reference/Versioning
Après avoir apporté la modification de configuration, une mise à jour ne doit pas mettre à niveau votre package jQuery vers la version 2.0. Il y a eu des problèmes dans le passé avec le gestionnaire de packages d'interface utilisateur ne respectant pas l'
allowedVersions
attribut ( https://nuget.codeplex.com/workitem/1891 ), vous devrez peut-être utiliser la ligne de commande si vous rencontrez ce problème.Cependant, rien de tout cela ne résout le problème de ce qui se passe lorsque la branche 1.9 est mise à jour car le flux de paquets sera désormais sur la piste 2.0+. Je suppose que vous devrez passer à un nouveau package nuget spécialement écrit pour prendre en charge la version 1.x «héritée», ou copier le script manuellement à chaque fois.
Dans tous les cas, je le mettrai à jour lorsque j'en saurai plus.
Éditer:
L'auteur du paquet a déclaré que les chemins 1.x et 2.x seront pris en charge à l'avenir, c'est-à-dire que le flux du paquet contiendra des versions parallèles au lieu d'être fractionnées. Autant que je puisse voir, la solution est d'utiliser une contrainte de version au niveau de la configuration du package pour empêcher une mise à jour vers la version 2.x, par exemple:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(La spécification des versions min et max dans
allowedVersions
devrait permettre la mise à jour sans risquer de basculer vers la version 2.x. Au fait, la bonne parenthèse semble étrange, mais elle est correcte - cela signifie «inférieur à la version 2».)la source
jquery1
paquet sur nuget, qui ne suit que la branche 1.x.que diriez-vous de spécifier la version?
PM> Package d'installation jQuery -Version 1.9.1
Références: http://nuget.org/packages/jQuery/1.9.1
la source
Nuget a maintenant un package jquery1 qui ne suit que la branche 1.x, vous devriez donc pouvoir échanger le package jQuery principal pour celui-ci.
la source
J'ai combiné les deux solutions du haut pour @TeYoU
J'ai d'abord installé le package à partir de la console du gestionnaire de packages:
Menu Outils -> Gestionnaire de packages de bibliothèque -> Console du gestionnaire de packages
PM> Install-Package jQuery -Version 1.9.1
Ensuite, j'ai édité le packages.config comme @Dave R. dit:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Ensuite, j'ai mis à jour la version actuelle, actuellement 1.10.2 en utilisant Nuget Manager et cela a fonctionné comme un charme.
la source