Lors d'une tentative de migration d'une nouvelle interface utilisateur vers Managed/C#, j'ai récemment activé Common Language Runtime Support (/ clr) sur un grand projet hérité, qui utilise MFC dans une DLL partagée et s'appuie sur une douzaine d'autres projets au sein de notre solution globale. Ce projet est le noyau de notre application, et conduirait tout code d'interface utilisateur géré qui est produit (d'où la nécessité d'activer le support clr pour interop).C++/CLI TypeLoadException Limitation interne: trop de champs
Après la fixation d'une tonne de petites erreurs niggly et mises en garde, j'ai finalement réussi à obtenir l'application de compiler .. Toutefois, l'exécution de l'application provoque une EETypeLoadException et me laisse incapable de debug ...
Faire des creuser, j'ai trouvé la cause d'être "System.TypeLoadException: limitation interne: trop de champs." qui se produit juste à la fin de la compilation. J'ai ensuite trouvé this link qui suggère de décomposer l'assemblage en deux DLL ou plus. Cependant, ce n'est pas possible dans mon cas, car une limitation que j'ai est que le code hérité fondamentalement reste intact.
Quelqu'un peut-il suggérer d'autres solutions possibles? Je suis vraiment dans une impasse ici.
Je vois toujours l'erreur avec la mise en pool de chaînes dans les versions de débogage 64. Nous ne décomposons pas l'assemblage à cause de bugs avec Visual Studio et en créant plusieurs assemblages gérés dans une solution. Utilisation de VS 2008 –