tags:

views:

1372

answers:

2

What is the best method for displaying major/minor versions in a C# console application?

The System.Windows.Forms namespace includes a ProductVersion class that can be used to display the name/version information set via the Visual Studio project properties (Assembly Information). As such, here is my current mechanism:

Console.WriteLine("{0} ({1})", System.Windows.Forms.Application.ProductName, System.Windows.Forms.Application.ProductVersion);

Why is this part of Forms? Is this appropriate for a Console application?

+5  A: 

Assembly.GetExecutingAssembly().GetName().Version

Also, you can still use the class, you just have to reference the containing assembly. Its no biggie.

Will
+1  A: 

Assembly.GetExecutingAssembly().GetName().Version is not the same as Application.ProductVersion (but may be good enough depending on your environment.

As can be seen with Lutz Reflector, Application.ProductVersion first attempts to use the AssemblyInformationalVersion attribute from Assembly.GetEntryAssembly() if it's present, and if GetEntryAssembly() is not null.

Otherwise it uses the file version of the executable file.

I don't see any reason not to use Application.ProductVersion in a console application.

Joe