Assembly versioning
Marcus <[email protected]>
| Newsgroups | gmane.comp.gnu.dotgnu.developer,gmane.comp.gnome.mono.devel |
|---|---|
| Message-ID | <[email protected]> |
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.