tutorial office not microsoft libreria how found error c# com ms-word office-2007

c# - office - Error al acceder a los componentes COM



microsoft.office.interop.excel not found (6)

Creé un complemento para Microsoft Office Word. No hay problema al utilizar el complemento cuando Word se ejecuta como administrador, pero cuando no se ejecuta como administrador, hay dos excepciones comunes que acceden a los elementos de la cinta de opciones.

La primera excepción:

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)

Este error ocurre cuando el Control se invalida con el siguiente código:

ribbon.InvalidateControl("control-id");

Y la segunda excepción:

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()

Este error ocurre en la última línea del siguiente código:

object wdStory = Word.WdUnits.wdStory; object wdMove = Word.WdMovementType.wdMove; WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

¿Como puedo solucionar este problema?


¡Problema resuelto!

Anteriormente instalé Office 2010, por lo que hay algunas incoherencias en el Registro de Windows. Para solucionarlos, abre el regedit y busca el CLSID a partir del error.

Encontrarás algo así para el segundo error:

HKEY_CLASSES_ROOT/Interface/{00020970-0000-0000-C000-000000000046}

Con las subclaves:

  • ProxyStubClsid
  • ProxyStubClsid32
  • TypeLib

Eche un vistazo a los valores (Default) y de Version dentro de TypeLib .

Ahora encuentre el nodo a continuación, utilizando el valor (Default) como <TypeLib ID> (Default) <TypeLib ID> .

HKEY_CLASSES_ROOT / TypeLib / <TypeLib ID> /

Como hijo de estos elementos, encontrará más de un elemento, uno de ellos es la Version del primer registro. Si inspecciona los otros elementos, descubrirá que no apuntan a nada. Eliminar a los demás! ¡Está resuelto!



Empecé a recibir la misma excepción después de actualizar a la última versión de Office. Probé una serie de soluciones sugeridas, incluida la limpieza del registro de una manera similar a lo que describió @Victor.

Lo que eventualmente ayudó (aunque podría haber sido una combinación de factores) fue ''reparar'' la instalación:

Programas y características → última versión de OfficeReparación .


La reparación de la oficina funcionó para mí. En mi caso, había instalado Project, que creo que alteró la configuración y no fue capaz de invocar un procedimiento para migrar datos de un libro de Excel a SQL.


Simplemente instale Office 2010 / MS word / .NET Programmability Support.


Tengo el mismo problema hoy con VS2015 y Office 2013. Cambiar el objetivo de la plataforma a x64 funcionó para mí.