Como la mayoría de la gente, estoy usando el paquete jQuery Nuget para mantenerme actualizado.
Sin embargo, con el lanzamiento de jQuery 2.0, ahora se me pide que actualice jQuery 1.9.1 a 2.0. En este momento, tengo suficientes visitantes en mis sitios que usan versiones 'antiguas' de navegadores que prefiero seguir con 1.9.xy jQuery Migrate .
¿Hay alguna forma de decirle a Nuget que se quede con una versión en particular (1.9.x) cuando busque actualizaciones de un paquete (jQuery o de otro tipo)?
Estoy usando las extensiones de Visual Studio 2010/2012, pero si necesito usar la interfaz de línea de comandos dentro de VS para solucionar este problema, ciertamente lo haré.
Nota: Una cosa en el fondo de mi mente es que arruinaron la actualización. Dado que jQuery 1.9.xy 2.0.x / 2.x son bastante diferentes, parece que deberían haber creado un paquete jQuery 2 (.0.x | .x) en su lugar.
Por supuesto, las personas que realmente quieran actualizar a 2.x tendrán que saberlo y cambiar qué paquete quieren instalar. Pero dado que contiene cambios importantes, ¿quizás eso sea mejor?
Respuestas:
En mi opinión, esto es un error por parte del autor del paquete. Una actualización que elimina el soporte para varios navegadores debería haberse hecho en un paquete nuget de la versión 2 separado y publicitado en consecuencia, es decir, con renuncias significativas. La biblioteca 1.9 no es heredada y recibirá más actualizaciones en el futuro. Me he puesto en contacto con el autor del paquete y escribiré más si recibo una respuesta.
Mientras tanto, puede restringir la versión de su paquete utilizando la siguiente sintaxis en su
packages.config
:<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Hay más información sobre las restricciones de versión aquí:
http://docs.nuget.org/docs/reference/Versioning
Después de realizar el cambio de configuración, una actualización no debería actualizar su paquete jQuery a la versión 2.0. Ha habido problemas en el pasado con el administrador de paquetes de la interfaz de usuario que no respeta el
allowedVersions
atributo ( https://nuget.codeplex.com/workitem/1891 ), por lo que es posible que deba usar la línea de comando si encuentra este problema.Sin embargo, nada de esto resuelve el problema de lo que sucede cuando se actualiza la rama 1.9 porque el feed del paquete ahora estará en la vía 2.0+. Supongo que tendrá que cambiar a un nuevo paquete nuget escrito específicamente para admitir la versión 'heredada' 1.x, o copiar el script manualmente cada vez.
En cualquier caso, actualizaré esto cuando sepa más.
Editar:
El autor paquete ha declarado que tanto el 1.x y 2.x caminos serán apoyados en el futuro, es decir, la alimentación paquete contendrá versiones paralelas en lugar de ellos siendo dividida. Por lo que puedo ver, la solución es usar una restricción de versión en el nivel de configuración del paquete para evitar una actualización a la versión 2.x, por ejemplo:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(Especificar las versiones mínima y máxima en
allowedVersions
debería permitir la actualización sin arriesgarse a cambiar a la versión 2.x. Por cierto, el paréntesis derecho parece extraño, pero es correcto: significa 'menos que la versión 2').fuente
jquery1
paquete en nuget, que solo rastrea la rama 1.x.¿qué tal si especificamos la versión?
PM> Paquete de instalación jQuery -Version 1.9.1
Referencias: http://nuget.org/packages/jQuery/1.9.1
fuente
Nuget ahora tiene un paquete jquery1 que solo rastrea la rama 1.x, por lo que debería poder cambiar el paquete jQuery principal por este.
fuente
Combiné las dos soluciones desde arriba para @TeYoU
Primero instalé el paquete desde la consola del administrador de paquetes:
Menú Herramientas -> Administrador de paquetes de biblioteca -> Consola del administrador de paquetes
PM> Install-Package jQuery -Version 1.9.1
Luego edité el packages.config como @Dave R. dice:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Luego actualicé a la versión actual, actualmente 1.10.2 usando Nuget Manager y funcionó de maravilla.
fuente