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!

War es hilfreich?

Lösung

Nach Recherchen kann diese Methode keine gemischten Baugruppen laden.Sie können nur reines MSIL sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top