【问题标题】:How can I manually update jQuery UI installed via NuGet package?如何手动更新通过 NuGet 包安装的 jQuery UI?
【发布时间】:2013-02-15 06:45:42
【问题描述】:

情况

我正在处理一个使用默认 Visual Studio 2012 项目模板生成的 ASP.NET Web 窗体项目。从那以后我就使用 NuGet 安装 jQuery UI 版本 1.10.0。

我需要更新到 jQuery UI 1.10.1,因为我需要修复错误。根据该网站,1.10.1 是当前的稳定版本。但是,没有适用于此版本的 NuGet 包!

我不知道为什么 NuGet 包会落后于他们网站上 jQuery UI 团队提供的最新可用的stable 版本。 (是的,我意识到可能有一个不同的团队管理 nuget 包本身......但它似乎仍然需要保持最新......或者通过 NuGet 安装 jQuery 的价值是非常有限的。)

问题

如何在我的项目中手动将 jQuery UI(作为 NuGet 包安装)更新到 1.10.1?

我已经下载了最新的 1.10.1 javascript 文件。现在....当我查看我的 ASP.NET Web 窗体项目时,我在 Scripts 文件夹中看到以下文件:

那我这里该怎么办...删除以下两个文件?

  • jquery-ui-1.10.0.js
  • jquery-ui-1.10.0.min.js

...并用这些新文件替换?

  • jquery-ui-1.10.1.js
  • jquery-ui-1.10.1.min.js

这似乎行不通。

我的母版页中包含 jQuery 的方式(来自 Visual Studio 2012 生成的默认模板)是这样的:

您在上面看到的名为“jquery.ui.combined”的 JS 包是由某种隐藏代码自动生成的。继续查看您的项目...您不会发现任何明显定义此捆绑包的地方。因此,如果我添加最新的 JS 文件......似乎我无法定义它们是否被使用或捆绑。它们不是 NuGet 包逻辑/代码所期望的版本!!!

有什么想法吗?

另一个潜在问题

当我下载 jQuery UI 1.10.1 时,它还附带了 jQuery Core 1.9.1。正如您将在我的 Scripts 文件夹中看到的那样,jQuery UI 1.10.0 似乎与 jQuery Core 1.9.0 并驾齐驱。如果我更新 jQuery UI .....是否还需要更新到匹配的 jQuery Core? (这些是单独的 NuGet 包)

请具体回答

我想要解释如何手动更新安装的 jQuery UI 的版本从 NuGet 包....在 ASP.NET Web 窗体 项目.

我认为这会很有用,以便将来开发人员可以在将最新的错误修复包含在 jQuery UI 网站上的稳定版本中时立即下载它们......而无需等待包显示在 NuGet 提要上。

【问题讨论】:

    标签: asp.net jquery-ui webforms nuget nuget-package


    【解决方案1】:

    jQuery UI 团队尚未为他们的包上传 1.10.1 版本。恐怕你只需要等到他们发布它。

    如果迫不及待,可以先卸载当前版本的jQuery UI,然后手动将1.10.1版本的脚本文件添加到你的项目中。

    【讨论】:

    • 感谢您的回复。我不认为我可以只卸载 jQuery nuget 包......因为使用 ASP.NET Web 窗体项目,它默认配置有四个 jQuery nuget 包。 AspNet.ScriptManager.jQuery.UI.Combined、AspNet.ScriptManager.jQuery、jQuery 和 jQuery UI(组合库)..... 然后默认母版页以似乎很重要的顺序引用这些。我认为卸载 jQuery nuget 包(全部四个)会导致各种问题。
    • 您能否扩充您的答案以包含有关如何“卸载当前版本的 jQuery UI”而不破坏默认 ASP.NET Web 窗体项目的详细信息? (例如,应该删除我列出的这四个 nuget 包中的哪一个?需要对默认母版页进行哪些更改?)
    • 如果只想升级jQuery.UI,那么只需要卸载jQuery UI包,其余3个保持不变。
    • 问题是,在这 4 个默认安装的 nuget 包中......其中两个提到了 jQuery UI。一种叫做“AspNet.ScriptManager.jQuery.UI.Combined”。另一种称为“jQuery UI(组合库)”。我想我可以删除其中两个,看看有什么问题。如果微软的代码依赖这两个包是完整的,恐怕我会产生一些奇怪的错误。尤其是 ScriptManager 之一!我什至不知道为什么有两个与 jQuery UI 相关.. 除了 Hao Kung 在这里提到了一些关于重复数据删除的事情:stackoverflow.com/a/12308618/940783
    【解决方案2】:

    变通方法...虽然这似乎是一种不好的方法...

    我刚刚打开了这些文件....

    • jquery-ui-1.10.0.js
    • jquery-ui-1.10.0.min.js

    ...并将内容替换为这些文件中的内容:

    • jquery-ui-1.10.1.js
    • jquery-ui-1.10.1.min.js

    我让文件名保持不变。因此,即使 JavaScript 文件被命名为版本“1.10.0”......它们实际上保存的是版本“1.10.1”的代码。

    我认为这可能是一个糟糕的想法的原因之一

    如果其他开发人员试图从源代码管理中提取我的代码会发生什么...并且他们使用 NuGet 包管理器来恢复他们还没有的包。它不会拉 jQuery UI nuget 包并将我修改的 JavaScript 文件替换为 nuget 包中的文件吗?然后页面会再次开始出现错误行为,没有人知道为什么。

    至少....现在我可以在修复了错误的情况下继续开发!这很烦人......覆盖出现在对话框顶部,我无法与页面交互。这是已修复的错误:http://bugs.jqueryui.com/ticket/8984

    【讨论】:

      【解决方案3】:

      转到:Visual Studio -> 工具 => 库包 => 和包管理器设置 窗口打开,具有屏幕截图中的选项

      单击右上角和源浏览器内部的添加 (+) 按钮到您拥有的任何 Nuget 包的文件夹位置。名字是你想要的,然后按确定

      您现在可以看到您的包进入扩展和更新窗口

      在当前项目中安装

      使用包管理器控制台:安装包和你的包名

      【讨论】:

        猜你喜欢
        • 2012-04-26
        • 1970-01-01
        • 2015-12-17
        • 1970-01-01
        • 1970-01-01
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-01
        相关资源
        最近更新 更多