[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.