【问题标题】:Can I exclude a package from being automatically updated by NUGET?我可以排除包被 NUGET 自动更新吗?
【发布时间】:2016-06-02 23:05:54
【问题描述】:

在一个项目中,我们有 Umbraco 7.3.4,它依赖于 JSON.NET = 8.0.0 的其他 3rd 方包时,这会强制 Umbraco 自动更新到我不想要的版本 7.4。

抛开进行 hack 的利弊考虑,我很乐意进行 hack,因为我知道 Umbraco 可以与 JSON.NET 8.0.0 一起使用。问题是如何只为 Umbraco 包禁用 Nuget 自动更新(依赖解析)?在理想情况下(而且更好),我只想忽略对 Umbraco 包的 JSON.NET 依赖,但如果任何其他交叉依赖更新需要,让 Nuget 更新 Umbraco 包。

非常感谢您的建议

【问题讨论】:

    标签: nuget umbraco nuget-package


    【解决方案1】:

    这不是 Umbraco 功能,而是 Nuget 功能,您可以包含标志 -IgnoreDependencies,但据我所知,它不是选择性的。请注意,您可能会错过其他可能导致您最终陷入依赖地狱的依赖关系!

    例子:

    Update-Package Newtonsoft.Json -Version 8.0.0 -IgnoreDependencies

    Nuget 文档:

    -IgnoreDependencies
        Installs only this package and not its dependencies.
    
        Required: false
    

    https://docs.nuget.org/consume/package-manager-console-powershell-reference

    警告:在尝试此操作之前备份您的项目,以便在出现问题时将其回滚!

    【讨论】:

    • 这会将 JSON.NET 8.0.0 添加到解决方案中,但是当我尝试添加另一个包时,Nuget 会运行另一个依赖项检查并强制升级 Umbraco 或添加忽略所有依赖项的包。对此的管理成为一个问题。最后 Nuget 正在做应该做的事情,但在这种情况下,忽略 Umbraco 包的 JSON.NET 依赖项(并且只有这个)会有所帮助
    • 在这种情况下,您可能不需要将 Nuget 用于此特定依赖项。
    • 这是我所能做到的,但不幸的是这不是一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 2014-05-15
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    相关资源
    最近更新 更多