LNK2022 opération de métadonnées: Des informations de mise en page dans dupliqué types

Je vais avoir un nouveau-pour-moi de l'éditeur de liens d'erreur dans un projet, je travaille avec:

1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std.basic_string<char,std::char_traits<char>,std::allocator<char> >): (0x0200004e).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std.basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >): (0x02000075).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000091).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_const_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000092).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_val<char,std::allocator<char> >): (0x02000097).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_val<wchar_t,std::allocator<wchar_t> >): (0x02000099).

Nous sommes à l'aide de Visual Studio 2010 dans Windows 7.

Ce projet a utilisé pour compiler. C'est un C++/CLI wrapper DLL autour de certains de code non managé, et inclut donc Common Language Runtime Support. La chose qui a changé est qu'un statique externe de la bibliothèque que nous avons lié à a été "mis à jour". Nous sommes maintenant se cette erreur quand on essaie de compiler le projet qui en lien.

Microsoft "aide" pour cette question est de "faire fonctionner ildasm –jetons sur les fichiers objets à trouver quels types de jetons répertoriés dans error_message, et de chercher les différences". Puis j'ai vérifié cette page et a remarqué que le /tokens option n'est valide que pour .exe et .les fichiers dll... mais c'est une erreur de l'éditeur de liens, donc mon .fichier dll n'est pas encore fait!

J'ai essayé de lancer des choses comme ildasm -tokens AssemblyInfo.obj, mais la seule chose qui se passe est qu'une fenêtre s'ouvre avec cette incroyablement utile, message d'erreur:

LNK2022 opération de métadonnées: Des informations de mise en page dans dupliqué types

Merci Microsoft!

Je ne suis pas vraiment sûr de savoir comment poursuivre la résolution de ce problème. Une version Release fonctionne correctement-c'est seulement le Debug qui est foiré. Donc quelque part dans le mix je suppose que le std::string type est d'une taille différente ou quelque chose...

Des idées?

Parfois, j'ai cette erreur lorsque je modifie un fichier d'en-tête, et le compilateur n'a pas recompiler tous les fichiers de code il le devrait. Vous avez probablement déjà fait, mais d'une Propreté et d'une Reconstruction Complète peut aider.
Merci pour la recommandation, j'ai fait plein reconstruit, sans succès. Je pense que je suis sur la piste de quelque chose ici, mais...

OriginalL'auteur aardvarkk | 2012-08-16