Ich habe eine WPF-Assembly, die ich von nativen Code in einem Interop-Szenario verwenden Sie die Loadfrom Laden Kontext wie folgt aus:WPF Laden von Ressourcen nicht in Loadfrom Laden Kontext
AppDomain.CreateInstanceFrom("c:\mydlls\mywpfstuff.dll", "myclass")
Beachten Sie, dass nicht die gleichen Ordner MyDlls ist als wo sich die ausführbare Datei befindet Das funktioniert gut für normale .NET-DLLs, die ich auch lade, aber wenn ich das versuche, bekomme ich einen Fehler. Ich habe den Ereignishandler AppDomain.CurrentDomain.AssemblyResolve angefügt und ein Ereignis erhalten, bei dem das Laden fehlschlägt. Der Name in dem ResolveEventArgs ist "mywpfstuff.resources" und das RequesingAssembly ist leer. Ich habe keine Datei mit dem Namen "mywpfstuff.resources" und konnte nicht herausfinden, wie ich diese Baugruppe selbst auflösen kann.
Die Codezeile, die den Fehler auslöst, ist die InitializeComponent(); rufe meinen Hauptkonstruktor für Benutzersteuerelemente auf.
Es scheint mir, dass die interne XAML (BAML?) Mechanismen versucht, einige Ressourcen zu laden, verwendet aber das Standard-Load-Kontext statt des Loadfrom-Kontext.
Gibt es eine Möglichkeit, um dieses Problem, vorzugsweise indem man WPF den Loadfrom Kontext zu verwenden, oder wenn das nicht möglich ist, wie die Montage von Hand lösen zu tun?
Haben Sie eine Datei mit dem Namen '' Resources.resx' in mywpfstuff' Projekt (wahrscheinlich in ' Eigenschaftenordner) Wenn ja, was "Build Action" hat es? – SHSE
Ich bin mir nicht sicher, dass das wichtig ist - Sie werden sehen, viele DLL-s versucht, bei der Verwendung von AssemblyResolve (nach meiner Erfahrung) geladen werden. Haben Sie noch etwas zu Ihrem Projekt hinzuzufügen? Was genau ist "Myclass"? – NSGaga
Haben Sie versucht, mywpfstuff Assembly von Ihrem Event-Handler zurückzugeben, wenn die mywpfstuff.resources angefordert wird? – mgronber