11

In the old .NET framework, you could set the [assembly: AssemblyVersion("1.0.*")] and the compiler would auto-increment the version.

With .NET core, I've tried all sorts of things, but I can't get it to auto-increment.

  • I've added <Deterministic>False</Deterministic> and <AssemblyVersion>1.0.*</AssemblyVersion> to the .csproj per similar question. The code compiles but the version stays the same
  • I've tried the same thing but with <Version>1.0.*</Version> tag as described here. This actually set the product version to 1.0.* (with the asterisk).
  • I've set the Assembly Version in the Property Properties/Package page. Doesn't seem to do anything either.

None of it seems to work. Am I missing something simple? This is just a standard .NET Core Web Project.

Maytham Fahmi
  • 26,353
  • 12
  • 100
  • 121
AngryHacker
  • 56,860
  • 95
  • 305
  • 561
  • when we say auto increment version is each time you build a release on your local environment? what is your definition of auto increment? hence the way I would do it is when I build using Jenkins or Azure Devops, it is set in devops tools to auto increment after each build. – Maytham Fahmi Aug 10 '20 at 04:09
  • @maytham-ɯɐɥʇʎɐɯ To start with, I'd like to figure how to auto-increment on my local environment. – AngryHacker Aug 10 '20 at 04:13
  • 1
    One simple way I did it previously is reading the current version and increase it by one, so to get version and increment by command line. That said I found this articale not sure if it anser your question, let me know https://sachabarbs.wordpress.com/2020/02/23/net-core-standard-auto-incrementing-versioning/ – Maytham Fahmi Aug 10 '20 at 04:22
  • @maytham-ɯɐɥʇʎɐɯ That actually worked. Thank you. I am honestly surprised that this functionality isn't baked into the framework. – AngryHacker Aug 10 '20 at 05:29
  • I am happy os to hear, I left it as answer so other can get benefit of it. – Maytham Fahmi Aug 10 '20 at 05:33

2 Answers2

6

As indicated if you follow some of the links from the comments/answers, the most straightforward way to get .NET Framework-like version auto-incrementing in .NET Core 3/5/6 is to add to your .csproj:

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

And add to your Program.cs:

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

You may still want to read the links if there are other AssemblyInfo properties you want to set.

pdpc
  • 91
  • 2
  • 4
5

One simple way I did it previously is reading the current version and increase it by one, so you get current version and increment by one using command line.

I found this article would answers your question: https://sachabarbs.wordpress.com/2020/02/23/net-core-standard-auto-incrementing-versioning/

Maytham Fahmi
  • 26,353
  • 12
  • 100
  • 121