【问题标题】:Is there a way to automatically update an installed NuGet package in Visual Studio?有没有办法在 Visual Studio 中自动更新已安装的 NuGet 包?
【发布时间】:2015-08-06 08:10:20
【问题描述】:

正如标题所说,我想知道是否有办法在包源中有新版本可用时自动更新已安装的 NuGet 包。

用例是一个将某些公司政策(代码分析、签名等)应用到我们的项目的程序包,一旦此程序包更新,我希望能够配置自动更新这个包。

我知道 NuGet 有一个包还原功能,它会在构建项目时自动下载丢失的包,但这会下载特定版本还是具有匹配名称的最新包?

【问题讨论】:

  • 你最终是如何实现这个的?
  • @ShervinShahrdar 正如我在下面的回答中所述,无法自动更新已安装的软件包。

标签: visual-studio-2013 nuget nuget-package


【解决方案1】:

虽然迟到了,但我想补充一点,可以使用 PackageReference 更新 NuGet 包。

https://docs.microsoft.com/de-de/nuget/reference/package-versioning

【讨论】:

    【解决方案2】:

    NuGet 包还原功能有意仅适用于一个特定版本。如果缺少较低版本的软件包,则不会使用具有不同版本号的相同软件包。

    示例 1

    • packages.config 引用 1.0.0.0
    • 包源包含 1.0.0.0 和 1.0.0.1
    • 1.0.0.0是会自动恢复的版本

    示例 2

    • packages.config 引用 1.0.0.0
    • 包源仅包含 1.0.0.1
    • 不会执行自动恢复,项目不会构建

    这种行为是有意义的,否则无法控制您实际构建的内容。想象一下,在您构建将要发布的版本之前,有人使用更新版本的包更新包源......

    【讨论】:

    • "否则无法控制你实际构建的内容。"实际上,您始终可以将 nuget 包锁定到特定版本。
    • 而且由于您可以将 nuget 包锁定到特定版本,因此特别不幸的是 nuget 总是选择指定版本范围内的最早版本。这意味着除非您花时间手动检查新的包版本并修改项目文件以排除您知道不好的版本,否则您不会得到依赖项中的错误修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2021-05-30
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多