C# Assembly.LoadFrom löst eine BadImageFormatException aus
-
11-12-2019 - |
Frage
In einem der Projekte, an denen ich arbeite, wird der Code mithilfe von dynamisch in eine .net-DLL in eine vollständig vertrauenswürdige Assembly geladen Assembly.LoadFrom
Funktion.Bisher hat das zu 100 % ohne Probleme funktioniert.
Ich habe jetzt eine Visual C++-DLL, die mit /clr:pure kompiliert wurde und wie oben beschrieben geladen werden muss Assembly.LoadFrom
.Wenn ich das tue, erhalte ich eine BadImageFormatException, was wirklich seltsam ist.
Im Visual C++-Projekt gibt es drei Arten von CLR-Kompilierungsoptionen:
/clr
/clr:rein
/clr:sicher
Gemäß den mir gegebenen Anweisungen muss es unter /clr:pure kompiliert werden.Mein Problem ist, dass die Verwendung von /clr:pure die Ausnahme auslöst.Wenn ich es in /clr ändere, wird auch eine Ausnahme ausgelöst.Wenn ich es in /clr:safe ändere, wird es geladen, ohne eine Ausnahme auszulösen (hier endeten meine Tests).
Ich denke, das ist eigentlich eine zweiteilige Frage:
1) Warum sollte /clr:safe funktionieren, die anderen beiden jedoch nicht?
2) Wie bringe ich es mit /clr zum Laufen?
Dank im Voraus!
Lösung
Nach Recherchen kann diese Methode keine gemischten Baugruppen laden.Sie können nur reines MSIL sein.