http://bugzilla.novell.com/show_bug.cgi?id=580185
http://bugzilla.novell.com/show_bug.cgi?id=580185#c0 Summary: assembly version redirection fails to work properly Classification: Mono Product: Mono: Runtime Version: unspecified Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: misc AssignedTo: mono-bugs@lists.ximian.com ReportedBy: mhabers...@novell.com QAContact: mono-bugs@lists.ximian.com Found By: Community User Blocker: --- Created an attachment (id=342647) --> (http://bugzilla.novell.com/attachment.cgi?id=342647) extatica.zip The attached test application results in the following error when run: ----------------- System.InvalidCastException: Cannot cast from source type to destination type. at System.Web.UI.ScriptManager.GetCurrent (System.Web.UI.Page page) [0x00011] in /home/src/build/mono/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs:398 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /home/src/build/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:217 ------------------ The attached application redirects System.Web.Extensions 1.0.61025.0 to 3.5.0.0: ----------------- <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> ----------------- The problem is this code from System.Web.Extensions/System.Web.UI/ScriptManager.cs: ----------------- public static ScriptManager GetCurrent (Page page) { if (page == null) throw new ArgumentNullException ("page"); return (ScriptManager) page.Items [ScriptManagerKey]; } ----------------- Bin/ExtExtenders.dll references System.Web.Extensions 1.0.61025.0, while the rest of the application is linked with System.Web.Extensions 3.5.0.0. The method shown above, though, is loaded from the 1.0.61025.0 assembly and when it's running, the following is true: typeof (ScriptManager).AssemblyQualifiedName == System.Web.UI.ScriptManager, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 while the ScriptManager instance stored in page.Items comes from the 3.5.0.0 assembly: page.Items [System.Web.UI.IScriptManager] == System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 And therefore the cast fails. Runtime should never load any types from the 1.0.61025.0 version of the System.Web.Extensions assembly - they should be redirected to their 3.5.0.0 counterparts. The workaround is to recompile the Bin/ExtExtenders.dll assembly with System.Web.Extensions 3.5.0.0 The application works fine on .NET -- 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 - mono-bugs@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-bugs