NET / interoperabilidad COM problema - la apertura de Outlook 2003 Enviar diálogo Correo

StackOverflow https://stackoverflow.com/questions/533718

  •  22-08-2019
  •  | 
  •  

Pregunta

Tenemos una aplicación de Windows Forms, escrito en VB.NET (CLR 2.0), que hace un montón de cosas relacionadas con el Outlook. Una de las cosas que hacemos es mediante programación abrir un nuevo Outlook 2003 'componer los nuevos resultados' forma, rellena previamente con la 'a' de direcciones.

Me.WordApp = New Word.Application
Dim template As Object = System.Reflection.Missing.Value
Dim newTemplate As Object = System.Reflection.Missing.Value
Dim documentType As Object = Word.WdNewDocumentType.wdNewEmailMessage
Dim visible As Object = False
Me.WordDoc = Me.WordApp.Documents.Add(template, newTemplate, documentType, visible)
'then some other stuff

Ahora bien, esto funciona perfectamente en casi todas partes que implementar la aplicación -. El usuario rellena el asunto del correo electrónico y de texto, hace clic en Enviar, y podemos capturar el evento Enviar y hacer otras cosas buenas

Hay sólo un par de instalaciones en las que se rompa, y simplemente no pueden llegar al fondo del mismo.

¿El siguiente dar ninguna indicación de que el problema podría ser:

Could not load file or assembly 'office, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The located assembly's 
manifest definition does not match the assembly reference. (Exception from HRESULT: 
0x80131040)

Por lo que sabemos, estos son sólo las instalaciones de Office 2003, con Outlook y Word, al igual que en los casos en los que trabaja muy bien.

Yo estaría muy agradecido por cualquier idea -. Ya sea en la forma de solucionar este problema, o en una mejor manera de lograr lo mismo

¿Fue útil?

Solución

tuve una experiencia similar con un Excel 2003 de complementos. ¿Tiene tanto Office 2003 y Office 2007 instalado en el equipo de desarrollo? Si es así, comprobar los Referencias en su proyecto Thouroughly. Tenía una dependencia de Office 11, pero por debajo del ensamblado de interoperabilidad Office 12 estaba acostumbrado.

Asamblea Encuadernación redirección me estaba causando el problema .

Editar: ayudado mucho. Una cuestión adicional fueron los valores de seguridad en algunas máquinas (véase el proyecto SetSecurity que se utiliza en proyectos de ejemplo de configuración).

Otros consejos

El mal, es ordenado, y mi agradecimiento a Olli para su respuesta, que me consiguió en el camino correcto.

Sus enlace '' proyectos de ejemplo me llevó a este enlace sobre la implementación de soluciones de VSTO .

en el que encontré el comentario revelador:

"aplicaciones de Microsoft Office instalar los ensamblados de interoperabilidad primarios sólo si el equipo de destino tiene el .NET Framework 1.1 o posterior instalado."

Las luces se encendieron - y puedo configurar una máquina virtual, en el que he instalado (en el siguiente orden):

  • XP SP2
  • Office 2003 (instalación por defecto)
  • .NET 3.5 SP1 (el gran redistribuible)
  • Mi aplicación

Bingo - el problema se convirtió reproducibles, al igual que otra que iba a pedir la ayuda de la comunidad sucesivamente. Como se puede imaginar, todos nuestros ordenadores, y la mayoría de los clientes, han .NET ya instalado cuando Oficina continúa, por lo que normalmente no es un problema en absoluto.

Una Oficina reinstalar no pudieron solucionarlo sin embargo, al igual que una instalación 'detectar y reparar'.

Sin embargo, un 'añaden funciones' instalación le permite seleccionar manualmente la opción Compatibilidad con programación .NET, y el problema desaparece.

Línea inferior:

No se .NET, no ensamblados de interoperabilidad principal con una instalación de Office.

Gracias de nuevo Olli!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top