[Mono-devel-list] Assembly versioning

Marcus mathpup at mylinuxisp.com
Sat May 15 23:44:00 EDT 2004


The Mono runtime appears to require an exact match between compile-time and 
run-time version numbers, at least as far as major and minor version -- I'm 
not sure about the revision and build number. For example, if I compile 
'version.cs' and reference version 1:2:3400:0 of System.Xml, mono will reject 
the executable 'version.exe' if it finds version 1.0.5500 of System.Xml at 
runtime.

This is not consistent with .NET. .NET will run applications where the version 
numbers differ, at least in the minor version number. (I am not sure about 
the major version numbers.)

Partition II section 6.2.1.4 addresses this issue by saying that "[a] 
conforming implementation may ignore version numbers entirely, or it may 
require that they match precisely when binding a reference, or any other 
behavior deemed appropriate."

One of the consequences of this behavior is that applications built with Pnet 
will run on .NET, Rotor, and Pnet, but fail on Mono, because Pnet's libraries 
are carrying version like 1:2:3400:0.



More information about the Mono-devel-list mailing list