代码之家  ›  专栏  ›  技术社区  ›  bitbonk

Semver compatible autoincrement预发行版nupkg的版本号

  •  0
  • bitbonk  · 技术社区  · 6 年前

    当我们开发一个nuget包的新版本时,我们需要一天多次生成同一个nuget包的新的预发布版本。

    为了能够在我们的测试应用程序中使用prerelease nupkg的新构建,它必须为TFS触发的每个构建获取一个新的prerelease版本。否则,nuget包管理器将不允许我们在消费解决方案中更新nuget包,因为它不会检测到更新。

    解决这个问题的常见方法是在nuget包的预发布版本后缀中添加一些具有相同字符宽度的自动递增后缀。例如asp.net核心 solves is this way

    Microsoft.AspNetCore 3.0.0-preview-19058-0284

    他们添加一个后缀,总是5个字符宽,另一个总是4个字符宽,他们确保在每次构建时都以一种与semver兼容的方式递增。

    如何使用本地TFS 2018,即。

    1. 我如何将这个数字附加到nupkg版本的prerelease后缀后面。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Troopers    6 年前

    我使用构建日期作为预发布版本的后缀。 在csproj中:

    <PropertyGroup>
        <PackageOutputPath Condition="$(PackageOutputPath) == ''">$(OutputPath)</PackageOutputPath>
        <Title>MyAssembly</Title>
        <Version>1.0.0-$(Configuration)-$(Platform)-$([System.DateTime]::UtcNow.ToString(yyyyMMdd-HHmmss))</Version>
        <Authors>Me</Authors>
        <Copyright>Copyright © 2019</Copyright>
        <IncludeSymbols>true</IncludeSymbols>
    </PropertyGroup>