2009-05-21 12 views
5

Tenía un programa C# que realizaba algún tipo de automatización Excel de Word & y utilizaba ensamblados de interoperabilidad primaria de Office 2003. La forma en que lo implementé fue al incluir las Interoperaciones en el contenedor y mi programa hizo referencia desde allí en lugar de hacer referencia al mismo desde el GAC (no es muy profesional, pero funcionó por años). Recientemente, en 3 máquinas, se instaló el paquete de compatibilidad de Office 2007 y ahora, cuando mi software intenta invocar Word o Excel, aparece un error que dice:Ensamblados de interoperabilidad primaria de Office que no funcionan después de instalar el paquete de compatibilidad 2007

No se puede convertir el objeto COM del tipo Microsoft.Office.Interop.Word.ApplicationClass en tipo de interfaz Microsoft.Office.Interop.Word.Application, Esta operación falló porque la llamada a QueryInterface en el componente COM para la interfaz con IID {00020970-0000-0000-C000-000000000046} falló debido al siguiente error: Biblioteca no registrada . (Excepción de HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

Después de algunas búsquedas noté que la instalación del paquete de compatibilidad Word11 y Word12 se instaló en el GAC y lo mismo con Excel.

Intenté hacer que mi programa hiciera referencia a la interoperabilidad de Word11 en el GAC y todavía no hay ayuda. Abrí la interoperabilidad de Word12 y aún no recibí ayuda. Parece que la instalación de este parece haber cambiado alguna configuración de registro o algo que mi software está confundido no puede encontrar la biblioteca correcta.

¿Alguien tiene algunas ideas?

+0

pregunta más reciente [Error al acceder a los componentes COM] (http://stackoverflow.com/questions/12957595/error-accessing-com-components) – nawfal

Respuesta

1

He solucionado esto copiando las versiones anteriores del GAC a la carpeta de bibliotecas de terceros y haciendo referencia a ellas allí; también significa que puede compilar contra 2003 con solo 2007 instalado. (Y sí, sé que esto es un truco muy sucio)

+1

No funcionó, incluso si hago referencia a mi PIA local, todavía arroja el mismo error –

3

recientemente he tenido este problema con la palabra también y localicé esta clave de registro como el culpable

HKEY_Classes_Root\TypeLib\{00020905-0000-c000-000000000046}\8.4 

Al parecer, este dice la palabra de usar la palabra 2007 introp assemblies en lugar de Word 2003 (8.3). Al menos creo que no estoy demasiado familiarizado con los ensamblados introp de la oficina. Borro la clave de registro y todo funcionó normalmente. No conozco ningún efecto adverso al borrar esta clave, pero definitivamente la respaldo.

+0

Esta es la respuesta correcta. Tuve este mismo problema (excepto con la palabra 2010 vs 2007). Eliminé la referencia que no necesitaba y comenzó a funcionar. – richb01

+0

Espero que lo solucionen en el lanzamiento final, pero este también es el caso en mis pruebas de 2010 (8.5) vs 2013 beta (8.6). – HotN

Cuestiones relacionadas