Question

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?

Was it helpful?

Solution

Assembly.GetExecutingAssembly().GetName().Version

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top