http://bugzilla.novell.com/show_bug.cgi?id=617714
http://bugzilla.novell.com/show_bug.cgi?id=617714#c0 Summary: [.NET 4] Assembly loader fails to load type from remapped assembly Classification: Mono Product: Mono: Runtime Version: SVN Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: misc AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=371955) --> (http://bugzilla.novell.com/attachment.cgi?id=371955) mono_4.0_assembly_loader_bug.tar.bz2 When a 4.0 application references a 2.0/3.5 assembly which, in turn, references types that live in a remapped assembly (e.g. System.Core's Action types), the runtime will fail to load any type in the referenced assembly that relies upon types in the remapped assembly. Initially I thought it had to do with the fact that System.Core was not in the framework_assemblies array in assembly.c, but even after putting it there (diff for assembly.c is found in the attached tarball) it doesn't work. The assembly gets remapped properly but the type load is still attempted from the version of assembly from before the mapping. This breaks, e.g., ASP.NET MVC2 applications (a sample app is found in the tarball as well) which are ran under Mono .NET 4 runtime. To run the sample MVC app, start xsp4 in the MvcApplication2/MvcApplication2/ directory and browse to http://localhost:8080/ A MissingMethodException will be thrown stating that the System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute method (from System.Web.Mvc.dll - compiled for the 2.0/3.5 runtime) is not found. The tarball contains also a simpler example of how the remapping fails (in the test/ directory). The sample consists of an assembly which uses System.Core's Action type (in 4.0 this type got moved to corlib) and a small app which references the assembly. The sample build script, compile.sh, when invoked without any parameters will fail to compile the application (in this mode it compiles ab assembly using gmcs and the test application with dmcs - in effect dmcs fails to load the Test.MyClass type from the sample assembly). If invoked with any parameter, it will succeed to compile the assembly and the application (in this mode the assembly is compiled twice - first with dmcs to make it possible to compile test.exe, second with gmcs after test.exe is built) but the application will fail to work as Test.MyClass fails to load. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
