Fehler beim Zugriff auf COM-Komponenten
Baute ich ein add-in für Microsoft Office Word. Es ist nicht ein Problem mit dem add-in bei Word lief als Administrator, aber wenn es nicht als Administrator ausgeführt, es gibt zwei Allgemeine Ausnahmen Zugriff auf die Ribbon-Elemente.
Die erste Ausnahme:
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)
Dieser Fehler tritt auf, wenn das Steuerelement ungültig ist, indem Sie den folgenden code:
ribbon.InvalidateControl("control-id");
Und die zweite Ausnahme:
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()
Dieser Fehler tritt in der letzten Zeile des folgenden Codes:
object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)
Wie kann ich dieses problem beheben?
InformationsquelleAutor der Frage Victor | 2012-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem gelöst!
Ich habe zuvor Office 2010 installiert, so gibt es einige Inkonsistenzen in der Windows-Registry.
Sie zu beheben, öffnen Sie die
regedit
und finden für Sie die CLSID aus der error.Finden Sie so etwas wie, dass für den zweiten Fehler:
Mit folgenden Unterschlüsseln:
Werfen Sie einen Blick auf die
(Default)
undVersion
Werte innerhalb vonTypeLib
.Nun den Knoten finden, der unter Verwendung der
(Default)
Wert als<TypeLib ID>
.HKEY_CLASSES_ROOT\TypeLib\
<TypeLib ID>
\Als Kind dieser Elemente finden Sie mehr als ein element, dann ist die
Version
von der ersten Registrierung. Wenn Sie überprüfen Sie die anderen Elemente, die Sie finden, auf die Sie zeigen nichts. Entfernen Sie die anderen!!! Es ist gelöst!InformationsquelleAutor der Antwort Victor
Ich habe immer die gleiche Ausnahme nach der Aktualisierung auf die neueste Office-version. Ich habe versucht, eine Reihe von vorgeschlagenen fixes, einschließlich Reinigung der registry, in einer Weise ähnlich zu dem, was @Victor beschrieben.
Was schließlich geholfen (obwohl vielleicht war es eine Kombination von Faktoren), war die "Reparatur" der installation:
Programme und Funktionen → neuesten Office version → Reparatur.
InformationsquelleAutor der Antwort Nikita G.
Die office-Reparatur für mich gearbeitet. In meinem Fall hatte ich installiert Projekt, von dem ich glaube, dass verändert die config und war nicht in der Lage zu nennen, ein Verfahren zum migrieren von Daten aus einer excel-Arbeitsmappe zu SQL
InformationsquelleAutor der Antwort Joseph Warero
Einfach installieren Sie Office 2010 /MS word /.NET-Programmierunterstützung.
InformationsquelleAutor der Antwort Cicekfidan
@Victor, Du hast mich geleitet auf den rechten Weg. Mein Problem war nicht, dass mehrere Werte in der registry, aber eher, um einen fehlenden Wert, dass Office365 nie aufgenommen. Dank dir, ich war in der Lage zu finden, meine eigene Lösung zu finden. Tausend tausend Dank.
Details sind hier für jedermann noch auf der Suche nach einer Lösung.
InformationsquelleAutor der Antwort Andrew
Ich hab das gleiche problem heute mit VS2015 und Office 2013. Ändern der Zielplattform auf x64 für mich gearbeitet.
InformationsquelleAutor der Antwort Vaibhav Verma