【问题标题】:How configure packages.config to download the highest version如何配置packages.config下载最高版本
【发布时间】:2018-03-19 15:31:45
【问题描述】:

我想配置 packages.config 来下载可用的最高版本的包。我该怎么做?

类似:

<package id="PackageName" version="Highest" ... />

我看到 attr "allowedVersions",但它总是下载 "version" attr 中配置的版本。

【问题讨论】:

  • 你确定吗?你不想测试一个新版本的包是否不会首先破坏你的代码吗?
  • 感谢您的评论。不,我控制包裹。我只想要最后一个版本。
  • 无法使用 packages.config 文件。您可以尝试浮动 PackageReference 版本 - docs.microsoft.com/en-us/nuget/consume-packages/…

标签: c# .net visual-studio nuget nuget-package


【解决方案1】:

如何配置packages.config下载最高版本

正如 Ashley 和 Matt 所说,这是不可能的,因为packages.config 只允许指定单个版本的包。

简单的解决方法是使用 nuget cli 在预构建事件中更新该包:

$(YourNuGetPath)\nuget.exe update "$(ProjectDir)packages.config" -Id "<YourPackageId>"

通过此构建事件,Visual Studio 会在您构建项目之前将该包更新到最新版本。

【讨论】:

    【解决方案2】:

    不幸的是,NuGet 无法做到这一点,它只允许特定版本。 allowedVersions 用于阻止某人超出或低于特定版本。即版本 1.* 很好,但您不能转到版本 2.0。

    此类问题的典型解决方法是使用批处理/powershells 脚本更新您想要的包。然后,您可以将其挂接到预构建中。

    【讨论】:

      【解决方案3】:

      我认为您现在可以直接在项目文件中使用 PackageReference 节点。 通过这样做,您可以定义一个浮动版本,它将选择最高的稳定版本。

      https://docs.microsoft.com/en-us/nuget/concepts/package-versioning#version-ranges

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-24
        • 2016-05-10
        • 2014-02-21
        相关资源
        最近更新 更多