[Mono-list] Versioning

Jonathan Pryor jonpryor at vt.edu
Wed Feb 1 06:47:59 EST 2006


On Wed, 2006-02-01 at 11:39 +0100, Joachim Ante wrote:
> I am building some dll's with mcs and i want to version the assembly.
> What is the recommended way to do that?

There's only one way to version an assembly: with an attribute:

	[assembly: System.Reflection.AssemblyVersion 
		("major.minor.micro.build")]

Where major, minor, micro, and build are all integers, e.g "1.0.5000.0".

Alternatively, if you don't care about one of them, use '*', e.g.
'1.0.*.*'.  When a '*' is encountered, the compiler will auto-generate a
value for you.

While you're at it, you'll likely want to set the
System.Reflection.AssemblyTitle and
System.Reflection.AssemblyDescription attributes.  AssemblyTitle is
typically the file name, and AssemblyDescription is a short description
of what the assembly does.

Note that versioning the assembly doesn't do anything significant unless
you place the assembly into the GAC, at which point you can install
multiple versions into the GAC.  To place an assembly into the GAC
you'll need to sign the assembly with a public/private key pair and
install the assembly with gacutil.

See also:

http://msdn2.microsoft.com/en-us/library/6f05ezxy.aspx
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconDelayedSigningAssembly.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconstrongnamescenario.asp

 - Jon




More information about the Mono-list mailing list