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

68bkxrlz  于 2023-01-22  发布在  .NET
关注(0)|答案(2)|浏览(138)

在旧的.NET框架中,您可以设置[assembly: AssemblyVersion("1.0.*")],编译器将自动递增版本。
对于.NET核心,我尝试了各种方法,但我无法使它自动递增。

  • 我已经按照similar question<Deterministic>False</Deterministic><AssemblyVersion>1.0.*</AssemblyVersion>添加到.csproj中。
  • 我尝试了同样的方法,但是<Version>1.0.*</Version>标签是described here,这实际上将产品版本设置为1.0.*(带星号)。
  • 我已经在属性/包页面中设置了程序集版本。似乎也没有做任何事情。

看起来都不起作用。我是不是错过了一些简单的东西?这只是一个标准的。NET核心Web项目。

k10s72fa

k10s72fa1#

如前所述,如果您按照注解/答案中的一些链接操作,那么在.NET Core 3/5/6中获得类似.NET Framework的版本自动递增的最直接方法是将以下内容添加到.csproj:

<PropertyGroup>
   <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
   <Deterministic>false</Deterministic>
</PropertyGroup>

并添加到您的计划中。cs:

[assembly: System.Reflection.AssemblyVersion("1.0.*")]

如果要设置其他AssemblyInfo属性,则可能仍要读取链接。

ppcbkaq5

ppcbkaq52#

我以前做这件事的一个简单方法是阅读当前版本并将其加一,这样您就可以使用命令行获得当前版本并将其加一。
话虽如此,还是可以为.net核心项目做以下事情:
在.csproj文件中,添加以下内容:

<PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <Deterministic>false</Deterministic>
</PropertyGroup>

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

using System.Reflection;

[assembly: AssemblyVersion("1.0.*")]

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

要进行更多自定义,请查看此文章:https://sachabarbs.wordpress.com/2020/02/23/net-core-standard-auto-incrementing-versioning/
此外,我添加了这个链接:
Equivalent to AssemblyInfo in dotnet core/csproj
我在Visual Studio中也使用了这种方法:
https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions

相关问题