【问题标题】:Azure DevOps - Private NuGet feed doesn't update stable releaseAzure DevOps - 私有 NuGet 源不更新稳定版本
【发布时间】:2019-05-03 21:09:00
【问题描述】:

我按照 this guide 在 Azure DevOps 中创建了一个私有 NuGet 源,并使用 dotnet packdotnet nuget push 步骤创建了一个构建管道。运行构建几次后,新版本显示在Artifacts >> MyFeed >> Versions 下。部分版本我手动推广到@Release

这是 DevOps 中的视图:

但是当我连接到 Visual Studio 中的提要时,我只看到版本 1.0.0 作为稳定版本,但所有更高版本(通过我的构建管道发布)只有在我选中“包含 pre-释放”选项。截图如下:

我的问题是:

1 - 如何手动将版本升级为稳定版本?
2 - 如何通过构建或发布管道将版本提升为稳定版本?

【问题讨论】:

    标签: azure-devops nuget


    【解决方案1】:

    Azure DevOps - 私有 NuGet 源不会更新稳定版本

    就像 zivkan 所说的“- 字符之后的任何内容都表示预发布信息。”。您可以查看 nuget 文档 Package versioning 了解一些详细信息。

    1 - 如何手动将版本升级为稳定版?

    您可以从您的 nuget 提要下载该软件包,然后将软件包版本更改为稳定版,然后将其重新推送到提要。

    2 - 如何通过构建或发布管道将版本提升为稳定版本?

    要通过构建或发布将版本提升为稳定版本,您可以更改构建号。当你使用dotnet pack任务创建nuget包时,有一个选项Automatic package versioning

    更新:

    因此,请尝试在自动包版本控制上使用选项使用内部版本号选项。

    然后,在 Build number format 选项中,您可以将其设置为$(Major).$(Minor).$(Patch)$(Rev:.r)

    $(Major)$(Minor)$(Patch) 的值是变量选项卡中的自定​​义变量,$(Rev:.r) 的值是内部版本号。

    在这种情况下,包将是TestSample.1.0.0.5.nupkg

    希望这会有所帮助。

    【讨论】:

    • 对。所以如果我想从管道发布,我不应该选择date and time 选项,因为它会自动将额外的-ci... 添加到包版本中。此外,@prerelease@release 标志代表不同的概念,与“稳定”的包无关。对吗?
    • @Szeki,是的,您可以查看我更新的答案以获取更多详细信息,希望这会有所帮助。
    【解决方案2】:

    NuGet 使用语义版本控制 2.0,它表示 - 字符之后的任何内容都表示预发布信息。因此1.0.1-CI 是预发布版本,而1.0.1 是发布版本。如果您想在版本字符串中构建元数据,您应该使用 + 字符,同样由 SemVer2 定义。

    编辑:请注意,SemVer 元数据不参与版本比较,因此1.2.3+CI.1 被视为与1.2.3+CI.2 相同的版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-18
      • 2020-01-11
      • 2021-02-17
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多