2010-08-23 11 views
0

J'ai un projet .NET 2.0 qui nécessite l'utilisation d'un composant COM (Redemption en particulier). Dans Visual Studio 2010, j'ajoute une référence à la DLL COM comme je le ferais dans toutes les versions antérieures de VS (clic droit sur le projet-> Ajouter une référence-> onglet COM-> sélectionnez le produit-> Ok). Quand je construis et essayer de courir l'application que je continue à obtenir l'erreur suivante:VS2010: Utilisation de COM dans un projet .NET 2

Creating an instance of the COM component with CLSID {29AB7A12-B531-450E-8F7A-EA94C2F3C05F} from the IClassFactory failed due to the following error: 80004005.

Je n'ai pas eu beaucoup de chance de trouver ce qui se passe avec cette erreur.

J'ai déjà vérifié que la machine sur laquelle l'application s'exécute possède la DLL COM enregistrée via regsvr32.exe.

La seule chose que je pourrais penser est que cela a quelque chose à voir avec Visual Studio 2010 importer des composants COM différemment (peut-être?) Que les versions précédentes? Toute orientation à ce sujet serait extrêmement utile.

Merci d'avance.

EDIT: Code utilisé pour instancier la classe COM.

RDOSession session = new RDOSessionClass();

+0

Pourriez-vous publier le code que vous utilisez pour instancier l'objet COM et l'appeler? En outre, avez-vous vérifié les autorisations sur la DLL où le COM est mis en œuvre et assurez-vous que le compte sous lequel l'application s'exécute a accès à la DLL? – Zippit

+0

@Zippit Ajout du code que j'utilise pour instancier l'objet COM. Je suppose qu'il est important de noter que c'est la même chose que je l'ai fait avant que l'IDE soit mis à niveau de VS 2005 à VS2010. L'application fonctionne sous le contexte des utilisateurs qui se trouve être un administrateur local de la machine. – Adam

Répondre

1

C'est E_FAIL, "Erreur non spécifiée". C'est un code d'erreur totalement inutile mais pas rare pour les serveurs COM. Le programmeur a pris un raccourci, n'a pas pu trouver un meilleur code d'erreur et n'a pas voulu créer le sien. Il est très douteux que cela ait quelque chose à voir avec la librairie interop, vous ne l'avez jamais vraiment utilisé.

Peut-être une sorte de configuration dont le serveur COM a besoin, peut-être un problème d'installation. Mais ce ne sont que des conjectures sauvages. En fin de compte, vous avez probablement besoin de l'aide du fournisseur ou de l'auteur du composant pour passer cette bosse.

+0

Ah, je dois aimer ça. Cela a aidé plus que vous ne le pensez. L'exécution de l'application sur une autre machine fonctionne donc il semble que ce soit définitivement lié à la machine/à la configuration. – Adam