【问题标题】:How to apply the build number format to shelveset builds in tfs?如何将内部版本号格式应用于 tfs 中的搁置版本?
【发布时间】:2016-08-12 09:18:29
【问题描述】:

我有一个带有

的 TFS 构建定义

Process > Basic > Build Number Format参数设置为

1.1.2-alpha$(Rev:.r)

每当我从“最新源”构建并且构建代理应用正确的版本号(1.1.2-alpha1 等等)时,这都能正常工作。但是,当我尝试从具有相同构建定义的搁置集构建时,构建失败并出现以下错误:

'31927' is not a valid version string.

那么,如何确保构建代理在从搁置集构建时应用相同的命名模式?

错误信息:

【问题讨论】:

  • 如果从内部版本号格式中删除 $(Rev:.r) 是否会出现问题?
  • @Eddie-MSFT 是的,我刚刚检查过。删除动态部分后出现同样的错误。
  • 那就不是build number格式造成的。数字“31927”是你输入的吗?
  • 不,这是自动生成的内部版本号。对于普通构建,构建成功后,该数字会更改为构建号格式。如果它不是由内部版本号格式引起的,则错误消息可能不应该这么说。
  • 可以分享详细的错误日志吗?

标签: tfs azure-devops tfsbuild


【解决方案1】:

错误是由构建过程中的 nuget pack 任务引起的。您使用内部版本号对 nuget 包进行版本控制,但内部版本号“31927”不符合Nuget Versioning

当您使用搁置集对构建进行排队时,构建编号始终使用以下格式:构建 N。它不会读取您在“构建编号格式”中配置的设置。详情参考此链接:Private Build

已完成的构建使用格式 Build N 命名,其中 N 是 唯一的整数值。这种格式不同于公共构建, 您可以使用 Build Number Format 参数指定。

这意味着,为避免此问题,您需要使用其他一些方法来对您的 nuget 包进行版本控制。

【讨论】:

    猜你喜欢
    • 2017-02-15
    • 2011-09-20
    • 1970-01-01
    • 2010-12-04
    • 2016-03-25
    • 2011-08-04
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多