Nach dem letzten Upgrade auf Xamarin Studio 6 und Mono 4.4.0.182 (läuft unter OSX 10.10.5) haben wir festgestellt, dass unsere Anwendung nicht mehr läuft (Asp.NET MVC/Razor Website) . Die Lösung kompiliert jedoch korrekt.
Wir haben versucht, zu den vorherigen Versionen zurückzukehren, die funktionierten - Xamarin Studio 5.10.3 und Mono 4.3.2, und unsere Anwendung läuft immer noch nicht korrekt. Die exakt gleiche Anwendung funktionierte vor dem Update einwandfrei.
Es wurden keine weiteren Umgebungs-/Codeänderungen vorgenommen, und Neustarts haben ebenfalls nicht funktioniert.Mono - System.TypeLoadException: Konnte die Typen nicht laden
Fehler werden nach dem Update generiert.
1. Fehler (beim Start der Anwendung): System.Reflection.ReflectionTypeLoadException
Der von SimpleInjector Container.RegisterPackages ausgelöst wird(). Dies funktionierte vor dem Xamarin/Mono-Update, und es wurden keine Codeänderungen/Paketaktualisierungen vorgenommen/vorgenommen.
Could not load type 'System.Net.HttpListener' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Could not load type 'System.Net.HttpListenerPrefixCollection' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Could not load type 'System.Net.HttpWebRequest' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Could not load type 'System.Net.Security.SslStream' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Could not load type 'System.Net.WebSockets.ClientWebSocket' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Stacktrace
at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (System.Reflection.Assembly,bool) at System.Reflection.Assembly.GetExportedTypes() [0x00000] in /private/tmp/source-mono-4.3.2/bockbuild-xamarin/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/Assembly.cs:407 at SimpleInjector.PackageExtensions.GetExportedTypesFrom (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0
at SimpleInjector.PackageExtensions+<>c.<RegisterPackages>b__1_0 (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<SelectManyIterator>c__Iterator5`3[TSource,TCollection,TResult].MoveNext() [0x00059] in <filename unknown>:0
at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[TSource,TResult].MoveNext() [0x00078] in <filename unknown>:0
at System.Linq.Buffer`1[TElement]..ctor (IEnumerable`1 source) [0x00087] in <filename unknown>:0
at System.Linq.Enumerable.ToArray[TSource] (IEnumerable`1 source) [0x00011] in <filename unknown>:0
at SimpleInjector.PackageExtensions.RegisterPackages (SimpleInjector.Container container, IEnumerable`1 assemblies) [0x000f0] in <filename unknown>:0
at SimpleInjector.PackageExtensions.RegisterPackages (SimpleInjector.Container container) [0x0002f] in <filename unknown>:0
at MyApplication.Web.UI.MvcApplication.InitializeContainer (SimpleInjector.Container container) [0x00003] in /Users/*sanitized*/MyApplication.Web.UI/Global.asax.cs:57
2. Fehler (nach Seite neu geladen und alle nachfolgenden Seitenanfragen): System.ArgumentException Ein Element mit demselben Schlüssel wurde bereits hinzugefügt.
Dies verweist auf einen Aufruf von System.Web.Mvc.RouteCollectionExtensions.MapRoute in unserer App_Start/RouteConfig.cs-Datei (die wiederum von Global.asax.cs, Application_Start aufgerufen wird), die angibt, dass diese Datei mindestens zweimal aufgerufen wird. Auch dies funktionierte vor dem letzten Xamarin/Mono-Update.
Kann jemand Hilfe und/oder Vorschläge geben?
BEARBEITEN
Zurückgerollt auf Mono 4.2.4.4, und der Fehler ist weg. Es sieht so aus, als wäre in 4.3.2 eine Änderung eingeführt worden, die diesen Bug eingeführt hat.
Wenn das Reflektieren über Assemblys und Typen ein Problem in Mono ist, können Sie einfach die Funktionen des Simple Injector-Pakets entfernen und dies ohne Reflektion tun. Die Paketfunktion ist nur für hoch dynamische Plug-in-basierte Anwendungen geeignet. – Steven
Das Gleiche ist mir passiert. Konnte immer noch keine Lösung finden! – Deepal
Ich kehrte auch zurück zu 4.2.4.4 und es funktioniert. – Deepal