Est un COMException de 0x80040154 toujours "Classe non enregistrée"?
Un Système.Moment de l'exécution.InteropServices.COMException de 0x80040154 toujours dire que la classe n'est pas enregistré? Je suis un COMException qui dit "Récupération de la fabrique de classe COM pour le composant avec le CLSID {29131539-2EED-1069-BF5D-00DD011186B7} a échoué en raison de l'erreur suivante: 80040154." C'est en essayant de charger Interop.Domino.dll qui est une référence que j'ai obtenu à partir de l'onglet COM d'Ajouter une Référence appelé "Lotus Domino Objets", qui désigne domobj.tlb dans les Notes au dossier du programme.
J'ai écrit le code d'années - c'est la seule chose que j'ai jamais fait avec de l'interopérabilité et il est juste de dire que je n'ai jamais vraiment se familiariser avec elle.
Je vais voir à nouveau cette erreur après le déplacement de la code de de un 2008 R2 server (x64). Il a été écrit sur l'XP et de l'exécuter sur 2003 (x86). Afin de diagnostiquer le problème, j'ai construit un Win7 x86 (car il n'y a pas de R2 x86) et cela a fonctionné. J'ai aussi construit une 2003 x64 boîte et il échoue avec l'erreur, de sorte qu'il ressemble elle est causée par le passage à une architecture x64. Il ya quelque chose que je devrais faire quand on fait de l'interopérabilité pour obtenir x86 Dll COM pour travailler sur les machines x64?
OriginalL'auteur ssg31415926 | 2010-03-10
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème en essayant de construire et exécuter une .NET application sur Windows 7 x64 qui a appelé interop.domino.dll, qui est de 32 bits uniquement.
À résoudre, j'ai recompilé le .NET application à exécuter spécifiquement que les x86 lorsqu'il est exécuté sur les systèmes d'exploitation x64.
J'ai été en utilisant Visual Studio 2010 Express Edition qui est plus difficile à cibler spécifiquement pour les plateformes x86 que la payée pour les versions.
La solution était:
OriginalL'auteur mpowrie
Attention de registre de 32 bits de composants à l'aide de registre (C:\Windows\SysWOW64\regsvr32.exe).
Si vous avez déjà enregistré avec la version 64 bits, annuler l'inscription de chaque dll avec la même version.
Plus de vous aider à trouver ici L'équipe est de passer de la XP32 à XP64 pour .NET Développement - Tout Pièges?
Bonne chance
OriginalL'auteur lsalamon
Il y a un IBM note technique qui indique que le Domino COM les classes ne sont pas pris en charge sur un OS 64 bits. Voir https://www-304.ibm.com/support/docview.wss?uid=swg21454291 il semble Donc que même en compilant le code à exécuter en tant qu'x86 (comme par mpownie la réponse de), vous êtes encore quelques chances.
OriginalL'auteur Richard Schwartz