[Mono-bugs] [Bug 71416][Blo] Changed - Mono does not run NAnt anymore
Wed, 19 Jan 2005 05:28:22 -0500 (EST)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by firstname.lastname@example.org.
--- shadow/71416 2005-01-18 14:51:17.000000000 -0500
+++ shadow/71416.tmp.28725 2005-01-19 05:28:22.000000000 -0500
@@ -1,23 +1,24 @@
Product: Mono: Runtime
OS Details: SuSE 9.0 AMD64
Summary: Mono does not run NAnt anymore
Description of Problem:
Mono rev. 39101 does not run NAnt.exe (v. 0.85-rc1 as downloaded from sf).
@@ -107,6 +108,35 @@
with .NET 2.0 csc and run under mono. Then it results in the similar
error. Our runtime expects 2.0.40607 for assemblies compiled in 2.0
profile, while csc has the actual version 2.0.40103 in my box.
So it looks like the runtime problem. It would be nice if you post
the problem to bugzilla (as a runtime bug).
+------- Additional Comments From email@example.com 2005-01-19 05:28 -------
+This issue is actually triggered by the fact that the Mono runtime
+does not support unification of system assemblies.
+When an assembly references an assembly built using a previous
+version of the .NET (Mono), then referenced system assemblies should
+be unified to those of the current CLR.
+For example :
+Assembly A is built using the Mono 2.0 profile
+Assembly B is built using the Mono 1.0 profile
+Assembly A references System.Xml 2.0 and assembly B
+Assembly B references System.Xml 1.0
+On Mono, when assembly A is executed and assembly B is loaded then
+the System.Xml from the Mono 1.0 profile will be loaded (as that is
+the version that was referenced by assembly B). So, you're actually
+mixing Mono 1.0 and 2.0 profile assemblies in the same domain.
+Now when assembly A uses types or members that are only available in
+System.Xml 2.0, then this will fail as the 1.0 profile version of
+System.Xml is actually loaded.
+MS.NET solves this by automatically remapping references to system
+assemblies of another version of .NET to the corresponding version in
+the current runtime.