2011-03-23 12 views
11

He creado un complemento de Outlook para 2003, 2007 & 2010. El complemento funciona bien en 2007 y 2010, pero no se carga correctamente en 2003 en cualquier máquina, que no sea mi propia máquina de desarrollo. No hay problemas de código, ya que no se muestran errores en el comportamiento de la carga, y no es un elemento desactivado. El complemento tampoco se muestra en la lista de complementos COM. Este complemento ha funcionado en 2003 previamente.El complemento de Outlook 2003 no se cargará, pero está en funcionamiento

Aquí está la parte extraña. Tengo una copia del complemento de un punto anterior en el tiempo, por lo que no contiene algunas de las características de la versión completa. Este complemento se carga correctamente en 2003. Por lo tanto, como parte de mis pruebas, en una VM, instalé la versión anterior (la llamaré prueba) y la versión actual que no funciona (lo llamaré) completo). En el registro en HKCU> Software> Clases> CLSID> [[guid]]> InprocServer32, para la prueba versión cambié las claves 'Manifest Location' y 'Manifest Name' para que sean los valores de la completa versión. Luego ejecuté Outlook y la versión completa funcionó perfectamente.

no puedo ver cómo el completa complemento no funciona en él es poseer la configuración del registro, pero funciona bien bajo prueba 's, y sólo en Outlook 2003.

Aquí está la información básica :

Mi configuración dev es:

  • Windows 7 de 64 bits
  • Outlook 2003 instalado
  • Ejecutando VS2008 para el proyecto de complemento, pero también use VS2010 para un ensamblaje de satélite.
  • El proyecto Set Security se incluye y modifica para permitir que múltiples ensambles tengan CASPol configurado.

La siguiente pre-reqs se incluyen en el proyecto de instalación:

  • .Net 2.0
  • .Net 3.5SP1
  • Office 2003 PIA (también 2007 & 2010 los PIA para 2007 & 2010 respectivamente)
  • VSTOSE runtime
  • Windows Installer 3.1

Cualquier sugerencia sería muy apreciada, ya que he pasado casi 4 días sobre este tema.

TIA.


Actualización 1:

De acuerdo con los comentarios @JoaoAngelo he comprobado la configuración del registro, y que son los siguientes:

HKCU> Software> Clases> CLSID> {complemento CLSID }> InprocServer32

- (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll' 
- ManifestLocation - path to the containing folder 
- ManifestName - the .dll.manifest file name 
- ThreadingModel - 'Both' 

HKCU> Software> Microsoft> Oficina> Outlook> complementos> MyAddIn

- (default) - not set 
- CommandLineSafe - '1' 
- Description - a string 
- FriendlyName - add-in ID 
- LoadBehavior - '3' (this never gets set to 2, which would indicate an issue) 
- Manifest - path to the .dll.manifest of the add-in assembly 
- Path - path to the containing folder 

También añade lo siguiente bajo este último, según el Deployment page, pero fue en vano:

- ManifestLocation 
- ManifestName 

Actualización 2:

De acuerdo con los comentarios 0xA3; Bajo HKCR> MyAddIn tengo una clave CLSID con un único valor de cadena:

(default) - {add-in CLSID} 

El CLSID es el mismo que se ve en HKCU> Software> Clases> CLSID y durante el registro.

+0

Lo que se define en HKCR -> MyAddin (es decir, en el ID de programa del complemento, la misma cadena 'MyAddin' que se utiliza en HKCU> Software> Microsoft> Office> Outlook> Addins> MyAddin) –

+0

Actualicé publicación original (Actualización 2). – SteveA

+0

[Editar]: veo que esto se ha actualizado, quitando el comentario. Mi problema es realmente diferente a esto, ya veo. –

Respuesta

3

Finalmente logré encontrar el problema, estaba relacionado con el registro.

originalmente planeado para tener complementos independientes para cada versión de Outlook, y como tal, mis espacios de nombres y convenciones de nombres, etc fueron:

  • [empresa] .AddIns.Outlook2003
  • [la compañía]. AddIns.Outlook2007
  • [empresa] .AddIns.Outlook2010

Sin embargo, he conseguido crear el complemento para apuntar los 3, por lo que cambió el nombre [de la empresa] .AddIns.Outlook2003 ser [la compañía]. AddIns.Client .

Cambié la configuración del registro para HKCU> Software> Microsoft> Office> Outlook> Addins> MyAddin, para hacer referencia al cambio descrito, pero por alguna razón no lo actualicé en HKCU> Software> Classes.

¡Tan pronto como cambié estas configuraciones en VS, funcionó!

Como referencia, los cambios se realizaron en VS en el Proyecto de configuración, en Ver> Registro.

Un poco molesto que este problema no apareció en 2007/2010, ya que puede haber sido más fácil de localizar.

0

Si no lo ha hecho debe establecer las variables de entorno para ayudarle en la solución de problemas problemas de carga de complemento:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

La primera de ellas se traducirá en un archivo * .log que se está creando en el directorio que contiene los ensamblajes de complemento y el segundo permitirá que se muestren ventanas emergentes de errores cuando inicie la aplicación de destino, en este caso Outlook.

También dice que en el cuadro de desarrollo con Office 2003, el complemento funciona correctamente. Dado que Visual Studio registra automáticamente el complemento en el cuadro de desarrollo cuando realiza una compilación, debe asegurarse de que está creando todas las claves de registro necesarias en la configuración. Puede comprobar el las anotaciones de registro sección en el siguiente artículo de MSDN para comprobar que tiene las teclas correctas se crean en la configuración:

Deploying Application-Level Add-ins

+0

Gracias por la respuesta. Intenté registrar las alertas anteriormente y no hicieron nada, ya que creo que solo funcionan si el complemento está cargado. Sin embargo, los agregaré de nuevo para verificarlos dos veces. También incluyo mi propio registro interno, pero obviamente esto no sirve, ya que el complemento no está cargado. También miré a través del enlace que enviaste previamente, pero de nuevo, comprobaré que todo está correcto, gracias. Parece extraño que las entradas de registro estén bien para 2007 y 2010, pero no para 2003. – SteveA

+0

Configuré las alertas, pero como se sospecha, no me devuelve nada. Actualicé la publicación inicial con los hallazgos del enlace Implementación de complementos de nivel de aplicación que publicó. – SteveA

0

le recomiendo que siga los pasos de solución de problemas que se describen aquí:

Hamed Ahmadi: My Office Addin Does Not Load!

+0

Gracias por la respuesta. Lamentablemente, ya he pasado por esos pasos y no se aplican a mi situación. También he pasado por [link] (http://blogs.msdn.com/b/vsod/archive/2008/04/22/troubleshooting-com-add-in-load-failures.aspx), pero de nuevo no de eso realmente se aplica. Con respecto a ese enlace, he habilitado los registros de Fusion, pero ninguno aparece en Outlook.exe, lo que también me confirma que Outlook simplemente no está cargando el complemento. – SteveA

0

¿seguro el complemento no ha sido deshabilitado por Outlook por alguna razón? Si lo ha instalado a nivel de máquina (a diferencia del nivel de usuario), no aparecerá en la lista de complementos de Com en ningún caso. Tal vez intente instalarlo como un complemento por usuario (para que aparezca en la lista) y vaya desde allí?

+0

No está deshabilitado, y está instalado a nivel de usuario. – SteveA

+0

@SteveA: ¿Ha comprobado explícitamente si su complemento está en la lista de complementos con discapacidad física? –

+0

Definitivamente no está en artículos deshabilitados. Si lo fuera, también esperaría ver que la configuración del registro LoadBehaviour cambie de 3 a 2. Es por eso que sospecho que simplemente no se está cargando en primer lugar. Además, sé que el código es correcto, según mi publicación original, por lo que definitivamente no se desactivará. – SteveA

Cuestiones relacionadas