Como a maioria das pessoas, estou usando o pacote jQuery Nuget para me manter atualizado.
No entanto, com o lançamento do jQuery 2.0, agora sou solicitado a atualizar o jQuery 1.9.1 para 2.0. No momento, tenho visitantes suficientes em meus sites usando versões 'antigas' de navegadores que prefiro ficar com 1.9.xe jQuery Migrate .
Existe alguma maneira de dizer ao Nuget para ficar com uma versão específica (1.9.x) ao verificar se há atualizações de um pacote (jQuery ou outro)?
Estou usando as extensões do Visual Studio 2010/2012, mas se precisar usar a interface de linha de comando do VS para solucionar esse problema, certamente o farei.
Nota: uma coisa na minha mente é que eles bagunçaram a atualização. Como o jQuery 1.9.xe 2.0.x / 2.x são bastante diferentes, parece que eles deveriam ter criado um pacote jQuery 2 (.0.x | .x).
É claro que as pessoas que realmente desejam atualizar para 2.x terão que saber sobre isso e trocar o pacote que desejam instalar. Mas, visto que contém alterações importantes, talvez seja melhor?
Respostas:
Na minha opinião, isso é um erro da parte do autor do pacote. Uma atualização que remove o suporte para vários navegadores deve ter sido feita em um pacote nuget versão 2 separado e anunciada de acordo, ou seja, com renúncias significativas. A biblioteca 1.9 não é legada e receberá novas atualizações no futuro. Entrei em contato com o autor do pacote e escreverei mais se receber uma resposta.
Nesse ínterim, você pode restringir a versão do seu pacote usando a seguinte sintaxe em
packages.config
:<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Há mais informações sobre as restrições de versão aqui:
http://docs.nuget.org/docs/reference/Versioning
Depois de fazer a mudança de configuração, uma atualização não deve atualizar seu pacote jQuery para a versão 2.0. Houve problemas no passado com o gerenciador de pacotes de IU não respeitando o
allowedVersions
atributo ( https://nuget.codeplex.com/workitem/1891 ), então você pode ter que usar a linha de comando se encontrar esse problema.No entanto, nada disso resolve o problema do que acontece quando o branch 1.9 é atualizado porque o feed de pacote agora estará na faixa 2.0+. Presumo que você terá que mudar para um novo pacote nuget escrito especificamente para oferecer suporte à versão 1.x 'legada' ou copiar o script manualmente a cada vez.
Em qualquer caso, atualizarei isso quando souber mais.
Editar:
O autor do pacote indicou que tanto o 1.x e 2.x caminhos irão ser suportado no futuro, ou seja, o pacote de alimentação irá conter versões paralelas em vez de lhes ser dividida. Pelo que posso ver, a solução é usar uma restrição de versão no nível de configuração do pacote para evitar uma atualização para a versão 2.x, por exemplo:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(Especificar as versões mín. E máx. Em
allowedVersions
deve permitir a atualização sem o risco de uma mudança para a versão 2.x. A propósito, o parêntese certo parece estranho, mas está correto - significa 'menos que a versão 2'.)fonte
jquery1
pacote no nuget, que rastreia apenas o branch 1.xque tal especificar a versão?
PM> Instalar pacote jQuery -Versão 1.9.1
Referências: http://nuget.org/packages/jQuery/1.9.1
fonte
Nuget agora tem um pacote jquery1 que rastreia apenas o branch 1.x, então você deve ser capaz de trocar o pacote jQuery principal por este.
fonte
Combinei as duas soluções do topo para @TeYoU
Primeiro instalei o pacote do console do gerenciador de pacotes:
Menu Ferramentas -> Gerenciador de Pacotes da Biblioteca -> Console do Gerenciador de Pacotes
PM> Install-Package jQuery -Version 1.9.1
Então editei o packages.config como @Dave R. diz:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Então eu atualizei para a versão atual, atualmente 1.10.2 usando o Nuget Manager e funcionou perfeitamente.
fonte