Erreur d'accès aux composants COM
J'ai construit un add-in pour Microsoft Office Word. Il n'y a pas un problème à l'aide du complément quand le Mot est exécuté en tant qu'Administrateur, mais quand il n'est pas couru en tant qu'Administrateur, il y a deux exceptions accès à Ruban éléments.
La première Exception:
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error: could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)
Cette erreur se produit lorsque le Contrôle est invalidé par le code suivant:
ribbon.InvalidateControl("control-id");
Et la deuxième Exception:
Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error: could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()
Cette erreur se produit sur la dernière ligne du code ci-dessous:
object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)
Comment puis-je résoudre ce problème?
- Cela fonctionne sur d'autres ordinateurs? Je me suis cassé le registre de l'autre jour (sur un des collègues de travail de l'ordinateur, pas moins) et a été victime de problèmes similaires à celui-ci tous les programmes qui ont utilisé des composants COM. Si il fonctionne sur un autre ordinateur, je vais vous expliquer ce que j'ai fait pour le résoudre.
- Oui, les travaux dans l'ordinateur de développement. Seulement dans la machine de test ne fonctionne pas. Peut-être parce que je l'ai installer (et désinstaller) de nombreuses versions d'Office (2007, 2007-64, 2010, 2010-64)
- Oh chers. Eh bien, ce système d'exploitation est la machine de test en cours d'exécution?
- Windows 7 64bits avec Office 2007 32bits
- Mais pourquoi quand je suis en cours d'exécution en tant qu'administrateur tout fonctionne bien?
- Je ne sais pas, mais j'ai eu le même problème. Programmes en cours d'exécution en tant qu'administrateur travaillé, mais la plupart rencontrez des erreurs et de crash autrement. Je vais poster une réponse avec ce que j'ai fait.
- J'ai supprimé ma réponse, car il ne fonctionne pas pour vous, et nous n'avons pas besoin de gens qui vont et exploser leurs registres en essayant risqué des solutions de ce type.
- ok. Merci quand même! 🙂
Vous devez vous connecter pour publier un commentaire.
Problème résolu!
J'ai déjà installé Office 2010, donc il y a des inconsistences dans le Registre de Windows.
Pour les fixer, ouvrez le
regedit
et de trouver pour le CLSID de l'erreur.Vous trouverez quelque chose comme ça pour la deuxième erreur:
Avec les sous-clés:
Prendre un coup d'oeil à la
(Default)
etVersion
des valeurs à l'intérieur deTypeLib
.Maintenant de trouver le nœud ci-dessous, à l'aide de la
(Default)
valeur<TypeLib ID>
.HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>
Comme enfant de cet élément, vous trouverez plus d'un élément, l'un d'eux est le
Version
du premier registre. Si vous examinez les autres éléments, vous trouverez ce qu'ils pointent sur rien. Supprimer les autres!!! C'est résolu!J'ai commencé à avoir la même exception après la mise à niveau vers la dernière version d'Office. J'ai essayé un certain nombre de corrections suggérées, y compris le nettoyage de la base de registre de façon similaire à ce que @Victor décrit.
Ce que finalement aidé (même si cela aurait pu être une combinaison de facteurs) a été réparer l'installation:
Programmes et Fonctionnalités → dernière Bureau version → Réparation.
La réparation d'office a travaillé pour moi. Dans mon cas, j'avais installé Projet qui, je crois, a modifié la config et a été incapable d'appeler une procédure pour migrer des données d'un classeur excel pour SQL
Il suffit d'installer Office 2010 /MS word /.NET Programmabilité de Soutien.
@Victor Vous me dirige sur le droit chemin. Ma question n'était pas de plusieurs valeurs dans le registre, mais plutôt une valeur manquante que Office365 jamais ajouté. Grâce à vous j'ai pu trouver ma propre résolution. Un millier de grâce.
Les détails sont ici pour ceux qui sont encore à la recherche pour une résolution.
J'ai eu le même problème aujourd'hui avec VS2015 et Office 2013. La modification de la Plate-forme cible pour x64 a fonctionné pour moi.