【问题标题】:How to make version autoincrement in the latest .NET Core tooling?如何在最新的 .NET Core 工具中实现版本自动递增?
【发布时间】:2017-02-11 19:15:05
【问题描述】:

我正在使用最新的(截至今天).NET Core 工具。在那里,您在 MSBuild 属性中指定版本。但是,与 [assembly:AssemblyVersion] 不同,这似乎不支持通配符。如何以相同的方式自动增加版本?

解释为什么这是一个坏主意,应该怎么做也是一个很好的答案。

【问题讨论】:

    标签: nuget .net-core versioning csproj


    【解决方案1】:

    MSBuild 中的 Version 属性不像 project.json 那样支持星号(通配符)格式。

    但是,使用 MSBuild,您可以通过其他方式计算版本。没有一种正确的方法可以做到这一点,但这是一种方法。我们改用“VersionPrefix”。 Microsoft.NET.Sdk 还会自动将 VersionPrefix 和 VersionSuffix 组合起来,形成“Version”的最终值。

    在文件中:

    <PropertyGroup>
      <VersionPrefix>2.0.0</VersionPrefix>
    </PropertyGroup>
    

    在构建服务器上:

    msbuild.exe /t:Pack /p:VersionSuffix=build00123 
    
    // or, the dotnet.exe equivalent
    dotnet pack --version-suffix build00123
    

    结果:

    AssemblyVersion = 2.0.0.0
    Package version = 2.0.0-build00123
    

    我们的构建服务器在每次运行时生成构建号。

    如果您想使用老式的 AssemblyVersion 星号形式,您可以在 MSBuild 中显式设置 &lt;AssemblyVersion&gt; 属性。如果不是,则默认为major.minor.patch 值&lt;Version&gt;

    更多细节:

    Microsoft.NET.Sdk 中有六个“版本”设置。详情请见What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 2020-11-29
      • 2020-04-11
      • 2011-06-11
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多