如何自动增加 .NET Core 项目的版本(例如“1.0.*”)?

Ang*_*ker 8 .net c# versioning .net-core asp.net-core

在旧的 .NET 框架中,您可以设置[assembly: AssemblyVersion("1.0.*")]并且编译器会自动增加版本。

使用 .NET 核心,我尝试了各种方法,但无法让它自动递增。

  • 我已经按照类似的问题在 .csproj 中添加了<Deterministic>False</Deterministic>和。代码编译但版本保持不变<AssemblyVersion>1.0.*</AssemblyVersion>
  • 我尝试过同样的事情,但使用此处描述的<Version>1.0.*</Version>标记。这实际上将产品版本设置为 1.0.*(带星号)。
  • 我已经在属性属性/包页面中设置了程序集版本。好像也没什么。

它似乎都不起作用。我错过了一些简单的东西吗?这只是一个标准的 .NET Core Web 项目。

may*_*ʎɐɯ 19

我之前执行此操作的一种简单方法是读取当前版本并将其加一,这样您就可以使用命令行获取当前版本并加一。

话虽如此,可以对 .net core 项目执行以下操作:

在 .csproj 文件中,添加以下内容:

<PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <Deterministic>false</Deterministic>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

例如,在您的代码中,在入口点类中添加以下内容:

using System.Reflection;

[assembly: AssemblyVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)

当您构建代码时,它将获得类似 1.0.8419.40347 的版本。

在此输入图像描述

要进行更多自定义,请查看这篇文章:https://sachabarbs.wordpress.com/2020/02/23/net-core-standard-auto-incrementing-versioning/

另外,我添加了这个链接:

相当于 dotnet core/csproj 中的 AssemblyInfo

我也将这种努力用于 Visual Studio:

https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions