Bei der Migration einiger neuer UI in Managed/C# land habe ich kürzlich die Common Language Runtime-Unterstützung (/ clr) für ein großes Legacy-Projekt aktiviert, das MFC verwendet in einer gemeinsamen DLL und stützt sich auf ungefähr ein Dutzend andere Projekte innerhalb unserer Gesamtlösung. Dieses Projekt ist der Kern unserer Anwendung und würde jeden verwalteten UI-Code steuern, der erzeugt wird (daher die Notwendigkeit, die clr-Unterstützung für Interop einzuschalten).Gemischte C++/CLI TypeLoadException Interne Einschränkung: zu viele Felder
Nach einer Tonne wenig niggly Fehler und Warnungen Festsetzung ich es endlich geschafft, die Anwendung zu kompilieren .. jedoch die Anwendung läuft eine EETypeLoadException verursacht und lässt mich zum Debuggen nicht in der Lage ...
einige tun Graben, fand ich die Ursache zu "System.TypeLoadException: Interne Einschränkung: zu viele Felder." was genau am Ende der Kompilierung passiert. Ich fand dann this link, die vorschlägt, die Versammlung in zwei oder mehr dlls zu brechen. Dies ist jedoch in meinem Fall nicht möglich, da ich eine Einschränkung habe, dass der Legacy-Code grundsätzlich unberührt bleibt.
Kann jemand andere mögliche Lösungen vorschlagen? Ich bin hier wirklich in einer Sackgasse.
Ich sehe immer noch den Fehler mit String-Pooling in Debug 64 Builds. Wir trennen die Assembly nicht aufgrund von Fehlern mit Visual Studio und der Erstellung mehrerer verwalteter Assemblys in einer Lösung. Verwenden von VS 2008 –