Jak większość ludzi, używam pakietu jQuery Nuget, aby być na bieżąco.
Jednak wraz z wydaniem jQuery 2.0 pojawia się teraz monit o aktualizację jQuery 1.9.1 do 2.0. W tej chwili mam wystarczającą liczbę odwiedzających moje strony korzystające ze „starożytnych” wersji przeglądarek, których wolałbym trzymać się 1.9.xi jQuery Migrate .
Czy w ogóle można powiedzieć Nugetowi, aby trzymał się określonej wersji (1.9.x) podczas sprawdzania aktualizacji pakietu (jQuery lub inny)?
Używam rozszerzeń Visual Studio 2010/2012, ale jeśli muszę użyć interfejsu wiersza poleceń w VS, aby obejść ten problem, z pewnością to zrobię.
Uwaga: jedna rzecz w mojej głowie to to, że zepsuli aktualizację. Ponieważ jQuery 1.9.x i 2.0.x / 2.x są dość różne, wydaje się, że zamiast tego powinni utworzyć pakiet jQuery 2 (.0.x | .x).
Oczywiście osoby, które faktycznie chcą zaktualizować do wersji 2.x, będą musiały o tym wiedzieć i zmienić pakiet, który chcą zainstalować. Ale biorąc pod uwagę, że zawiera przełomowe zmiany, może to jest lepsze?
Odpowiedzi:
Moim zdaniem to błąd autora pakietu. Aktualizacja, która usuwa obsługę kilku przeglądarek, powinna zostać umieszczona w osobnym pakiecie nuget w wersji 2 i odpowiednio zareklamowana, tj. Z istotnymi zastrzeżeniami. Biblioteka 1.9 nie jest starsza i otrzyma dalsze aktualizacje w przyszłości. Skontaktowałem się z autorem pakietu i napiszę więcej, jeśli otrzymam odpowiedź.
W międzyczasie możesz ograniczyć wersję swojego pakietu, używając następującej składni w swoim
packages.config
:<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Więcej informacji na temat ograniczeń wersji znajdziesz tutaj:
http://docs.nuget.org/docs/reference/Versioning
Po wprowadzeniu zmiany konfiguracji aktualizacja nie powinna uaktualniać pakietu jQuery do wersji 2.0. W przeszłości występowały problemy z menedżerem pakietów interfejsu użytkownika, które nie przestrzegały
allowedVersions
atrybutu ( https://nuget.codeplex.com/workitem/1891 ), więc może być konieczne użycie wiersza poleceń, jeśli napotkasz ten problem.Jednak nic z tego nie rozwiązuje problemu, co się stanie, gdy gałąź 1.9 zostanie zaktualizowana, ponieważ kanał informacyjny pakietu będzie teraz na ścieżce 2.0+. Zakładam, że będziesz musiał przełączyć się na nowy pakiet NuGet specjalnie napisany do obsługi „starszej” wersji 1.x lub za każdym razem ręcznie skopiować skrypt.
W każdym razie zaktualizuję to, gdy dowiem się więcej.
Edytować:
Autor pakietu stwierdził, że obie ścieżki 1.x i 2.x będą obsługiwane w przyszłości, tj. Kanał informacyjny pakietu będzie zawierał wersje równoległe zamiast ich podziału. O ile widzę, rozwiązaniem jest użycie ograniczenia wersji na poziomie konfiguracji pakietu, aby zapobiec aktualizacji do wersji 2.x, np .:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(Podanie w programie wersji minimalnej i maksymalnej
allowedVersions
powinno umożliwić aktualizację bez ryzyka przejścia na wersję 2.x. Nawiasem mówiąc, prawy nawias wygląda dziwnie, ale jest poprawny - oznacza „mniej niż wersja 2”).źródło
jquery1
nuget jest teraz pakiet, który śledzi tylko gałąź 1.x.co powiesz na określenie wersji?
PM> Install-Package jQuery -Version 1.9.1
Źródła: http://nuget.org/packages/jQuery/1.9.1
źródło
Nuget ma teraz pakiet jquery1, który śledzi tylko gałąź 1.x, więc powinieneś być w stanie zamienić podstawowy pakiet jQuery na ten.
źródło
Połączyłem dwa rozwiązania od góry dla @TeYoU
Najpierw zainstalowałem pakiet z konsoli menedżera pakietów:
Menu Narzędzia -> Menedżer pakietów bibliotecznych -> Konsola menedżera pakietów
PM> Install-Package jQuery -Version 1.9.1
Następnie wyedytowałem packages.config, jak mówi @Dave R.:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Następnie zaktualizowałem do aktualnej wersji, obecnie 1.10.2 za pomocą Nuget Managera i działało to jak urok.
źródło