我可以将Nuget保留在jQuery 1.9.x/1.x路径上(而不是升级到2.x)吗?

Jam*_*emp 86 jquery nuget

像大多数人一样,我正在使用jQuery Nuget包来保持最新.

但是,随着jQuery 2.0的发布,我现在被提示将jQuery 1.9.1升级到2.0.此时,我的网站上有足够的访问者使用"古老"版本的浏览器,我宁愿坚持使用1.9.x和jQuery Migrate.

在检查包的更新(jQuery或其他)时,有没有告诉Nuget坚持使用特定版本(1.9.x)?

我正在使用Visual Studio 2010/2012扩展,但如果我需要在VS中使用命令行界面来解决此问题,我当然会.

注意:在我的脑海中有一件事是他们搞砸了更新.由于jQuery 1.9.x和2.0.x/2.x相当不同,它们似乎应该创建一个jQuery 2(.0.x | .x)包.

当然,那些真正想要更新到2.x的人必须知道它并切换他们想要安装的软件包.但鉴于它包含重大变化,也许这更好?

Dav*_* R. 117

在我看来,这是包装作者的一个错误.删除对多个浏览器的支持的更新应该已经被制作成单独的版本2 nuget包并相应地做广告,即具有重要的免责声明.1.9库不是遗留的,将来会有进一步的更新.我已与包裹作者保持联系,如果收到回复,我会写更多内容.

在此期间,您可以使用以下语法限制软件包的版本packages.config:

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Run Code Online (Sandbox Code Playgroud)

这里有关于版本限制的更多信息:

http://docs.nuget.org/docs/reference/Versioning

进行配置更改后,更新不应将jQuery包升级到2.0版本.过去一直存在问题,UI包管理器不尊重该allowedVersions属性(https://nuget.codeplex.com/workitem/1891),因此如果遇到此问题,可能必须使用命令行.

但是,这并没有解决1.9分支更新时发生的问题,因为程序包提要现在将在2.0+轨道上.我假设您必须切换到专门为支持'legacy'1.x版本而编写的新nuget包,或者每次都手动复制脚本.

无论如何,当我了解更多信息时,我会更新此信息.

编辑:

软件包作者已声明将来将支持1.x 2.x路径,即软件包源将包含并行版本而不是它们被拆分.据我所知,解决方案是在包配置级别使用版本约束来阻止更新2.x版本,例如:

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Run Code Online (Sandbox Code Playgroud)

(指定最小和最大版本allowedVersions应该允许更新而不会有转换到2.x版本的风险.顺便说一句,右括号看起来很奇怪,但是正确 - 它意味着'小于版本2'.)

  • 大!这个解决方法让我安装jQuery 1.10.0! (5认同)
  • NuGet UI有一个[bug](https://nuget.codeplex.com/workitem/3301),即使您不允许在packages.config中更新,它也会提示更新到jQuery 2.0.具有讽刺意味的是,jQuery 2.0与NuGet 2.5如此接近.版本2.5有一个Update All按钮,如果不是这个bug,那将是很好的. (2认同)
  • 我已经看到nuget上现在有一个`jquery1`包,它只跟踪1.x分支. (2认同)

TeY*_*YoU 19

如何指定版本?

PM> Install-Package jQuery -Version 1.9.1

参考文献:http://nuget.org/packages/jQuery/1.9.1


Chr*_*s J 8

Nuget现在有一个只跟踪1.x分支的jquery1包,所以你应该可以换掉这个核心jQuery包.

  • 但是,如果你有其他jQuery依赖库,它将永远存在,最好你可以在jQuery 2.0旁边.如果你只想要依赖jQuery 1.x这不会工作,你将不得不看看Dave R的答案 (2认同)