none
No se pudo recuperar el generador de clases COM para el componente con CLSID {00020819-0000-0000-C000-000000000046} debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). RRS feed

  • Pregunta

  • Tengo una aplicacion de Windows Form Application el cual muestra documentos .docx y .xlsx, al momento de ejecutarlo en la maquina donde lo desarrolle no ocurre ningun problema, el problema ocurre cuando lo hago ejecutable y lo paso a una nueva maquina donde no tengo instalado Office. En teoria deberia de funcionar porque estan cargadas todas las librerias, sin embargo muestra el siguiente error:

    No se pudo recuperar el generador de clases COM para el componente con CLSID {00020819-0000-0000-C000-000000000046} debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.Runtime.InteropServices.COMException (0x80040154): No se pudo recuperar el generador de clases COM para el componente con CLSID {000209FF-0000-0000-C000-000000000046} debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
       en System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
       en System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
       en System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
       en System.Activator.CreateInstance(Type type, Boolean nonPublic)
       en System.Activator.CreateInstance(Type type)
       en AREVisorOriginal.Form1.btnCargar_Click(Object sender, EventArgs e)
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Ensamblados cargados **************
    mscorlib
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.6.1080.0 built by: NETFXREL3STAGE
        Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    AREVisorOriginal
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0

    ***********************

    por favor ayuda, como soluciono el error....

    sábado, 4 de junio de 2016 17:45

Respuestas

  • Ese error indica que le falta algún objeto COM al que tu programa está llamando. No basta con que tengas la librería, es necesario que esté correctamente inscrita en el Registro de Windows conforme con las normas COM.

    Si lo que estás haciendo es llamar a los programas de Office a través de COM/Interop, entonces es necesario que tengas instalado Office en el ordenador de destino. No basta con que copies la DLL de Interop que genera Visual Studio.

    sábado, 4 de junio de 2016 19:50
  • Es esta página te explica como solucionar los problemas de COM.

    Saludos, Javier J

    lunes, 6 de junio de 2016 6:47

Todas las respuestas

  • Ese error indica que le falta algún objeto COM al que tu programa está llamando. No basta con que tengas la librería, es necesario que esté correctamente inscrita en el Registro de Windows conforme con las normas COM.

    Si lo que estás haciendo es llamar a los programas de Office a través de COM/Interop, entonces es necesario que tengas instalado Office en el ordenador de destino. No basta con que copies la DLL de Interop que genera Visual Studio.

    sábado, 4 de junio de 2016 19:50
  • Es esta página te explica como solucionar los problemas de COM.

    Saludos, Javier J

    lunes, 6 de junio de 2016 6:47