Ich habe ein Add-In für Microsoft Office Word erstellt. Es gibt kein Problem mit dem Add-In, wenn Word als Administrator ausgeführt wird. Wenn es jedoch nicht als Administrator ausgeführt wird, gibt es zwei allgemeine Ausnahmen, die auf Ribbon-Elemente zugreifen.
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 durch den folgenden Code ungültig gemacht wird:
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 auf:
object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)
Wie kann ich dieses Problem beheben?
Problem gelöst!
Ich habe Office 2010 bereits installiert, daher gibt es einige Inkonsistenzen in der Windows-Registrierung. Um diese zu beheben, öffnen Sie regedit
und suchen Sie nach der CLSID aus dem Fehler.
Sie finden so etwas für den zweiten Fehler:
HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}
Mit den Unterschlüsseln:
Sehen Sie sich die Werte für (Default)
und Version
in TypeLib
an.
Suchen Sie nun den darunter liegenden Knoten mit dem (Default)
-Wert als <TypeLib ID>
.
HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>
Als untergeordnetes Element dieser Elemente finden Sie mehr als ein Element. Eines davon ist Version
der ersten Registrierung. Wenn Sie die anderen Elemente prüfen, werden Sie feststellen, dass sie auf nichts zeigen. Entferne die anderen !!! Es ist gelöst!
Zacząłem otrzymywać ten sam wyjątek po uaktualnieniu do najnowszej wersji pakietu Office. Próbowałem wielu sugerowanych poprawek, w tym czyszczenia rejestru w sposób podobny do opisanego przez @Victor.
Co ostatecznie pomogło (chociaż mogło bis być połączenie czynników) zu „naprawa” instalacji:
Programs and Features→ najnowszeOfficewersja →Repair.
Die Büroreparatur hat für mich funktioniert. In meinem Fall hatte ich Project installiert, von dem ich glaube, dass es die Konfiguration geändert hat, und ich konnte keine Prozedur zum Migrieren von Daten von einer Excel-Arbeitsmappe nach SQL aufrufen
@Victor Sie haben mich auf den richtigen Weg gebracht. Mein Problem waren nicht mehrere Werte in der Registrierung, sondern ein fehlender Wert, den Office365 nie hinzugefügt hat. Dank Ihnen konnte ich meinen eigenen Vorsatz finden. Tausendtausend Dank.
Ich habe heute das gleiche Problem mit VS2015 und Office 2013 bekommen. Das Ändern des Plattformziels in x64 hat für mich funktioniert.
Installieren Sie einfach die Office 2010/MS Word/.NET-Programmierunterstützung.