Auf der Suche nach einigen neuen UI in Managed/C# Land zu migrieren, habe ich vor kurzem auf Common Language Runtime Support (/clr) auf einem großen Legacy-Projekt, das MFC in einer Shared DLL verwendet und hängt von etwa einem Dutzend anderer Projekte innerhalb unserer Gesamtlösung eingeschaltet. Dieses Projekt ist der Kern unserer Anwendung, und würde alle verwalteten UI-Code, der produziert wird (daher die Notwendigkeit, auf Clr-Unterstützung für Interop zu aktivieren) fahren.
Nachdem ich eine Menge kleiner Fehler und Warnungen behoben hatte, konnte ich die Anwendung endlich kompilieren. Allerdings verursacht das Ausführen der Anwendung eine EETypeLoadException und lässt mich nicht in der Lage zu debuggen...
Nach einigem Suchen habe ich die Ursache gefunden: "System.TypeLoadException: Interne Einschränkung: zu viele Felder", die direkt am Ende der Kompilierung auftritt. Ich fand dann dieser Link die vorschlägt, die Assembly in zwei oder mehr DLLs aufzuteilen. Dies ist jedoch in meinem Fall nicht möglich, da eine Einschränkung darin besteht, dass der Legacy-Code im Grunde unangetastet bleibt.
Kann jemand andere mögliche Lösungen vorschlagen? Ich bin hier wirklich in einer Sackgasse.