https://bugzilla.novell.com/show_bug.cgi?id=661461
https://bugzilla.novell.com/show_bug.cgi?id=661461#c3 --- Comment #3 from David Schmitt <[email protected]> 2011-02-18 12:20:39 UTC --- Created an attachment (id=414983) --> (http://bugzilla.novell.com/attachment.cgi?id=414983) Demo app demonstrating the problem Actually my last comment and my original analysis were wrong. The actual problem I was experiencing comes from Type.GetType and AssemblyName.ctor using different methods of parsing assembly names. While the latter correctly works with unspecified versions, the former fails to do so and creates an AssemblyName with Version=0.0.0.0 instead of an undefined version. The important part of the attached demo app looks like this: // When the following two lines are removed this still works against Microsoft, but fails under mono var assembly = Assembly.Load(assemblyName); Debug.WriteLine(String.Format("Loaded assembly [{0}]", assembly.FullName)); var type = Type.GetType(String.Format("{0},{1}", typeName, assemblyName)); Debug.WriteLine(String.Format("Loaded type [{0}]", type.AssemblyQualifiedName)); Call it with typeName == "Demo2.Class" assemblyName="Demo2" (also within the attachement, only an empty assembly). Assembly.Load will lead to calling mono_assembly_name_parse_full from mono/metadata/assembly.c, which correctly sets is_version_defined depending on whether or not the passed assemblyName contains a Version=. If the assembly is not yet loaded, Type.GetType will lead to calling assembly_name_to_aname from mono/metadata/reflection.c which just sets the version part to 0.0.0.0 without checking whether or not the assembly name actually has a version set. In the end, Assembly.Load() fails, because Version=0.0.0.0 != the Version on the actual assembly. This happens in 2.8, 2.10 and in master. I can currently workaround by manually pre-loading the assemblies. -- Configure bugmail: https://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
