[Mono-bugs] [Bug 71416][Blo] Changed - Mono does not run NAnt anymore

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
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 gert.driesen@pandora.be.

http://bugzilla.ximian.com/show_bug.cgi?id=71416

--- 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 @@
 Bug#: 71416
 Product: Mono: Runtime
 Version: unspecified
-OS: 
+OS: unknown
 OS Details: SuSE 9.0 AMD64
 Status: NEW   
 Resolution: 
-Severity: 
+Severity: Unknown
 Priority: Blocker
 Component: misc
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: Willibald.Krenn@gmx.at               
 QAContact: mono-bugs@ximian.com
 TargetMilestone: ---
 URL: 
 Cc: 
 Summary: Mono does not run NAnt anymore
+BugsThisDependsOn: 66237
 
 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 gert.driesen@pandora.be  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.