Pregunta

Creé un complemento de Outlook para 2003, 2007 y 2010.El complemento funciona bien en 2007 y 2010, pero no se carga correctamente en 2003 en ninguna 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 carga y no es un elemento deshabilitado.El complemento tampoco se muestra en la lista de complementos COM.Este complemento funcionó anteriormente en 2003.

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

No puedo ver cómo el lleno El complemento no funciona en su propia configuración de registro, pero funciona bien en prueba's, y sólo en Outlook 2003.

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

Mi configuración de desarrollo es:

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

Los siguientes requisitos previos están incluidos en el proyecto de instalación:

  • .Net 2.0
  • .Net 3.5SP1
  • Office 2003 PIA (también PIA de 2007 y 2010 para 2007 y 2010 respectivamente)
  • Tiempo de ejecución VSTOSE
  • Instalador de Windows 3.1

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

TIA.


Actualización 1:

Según los comentarios de @JoaoAngelo, verifiqué la configuración del registro y son las 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 > Office > 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 agregué lo siguiente debajo de este último, según el Página de implementación, pero fue en vano:

 - ManifestLocation 
 - ManifestName

Actualización 2:

Según los comentarios de 0xA3;En 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 en todo el registro.

¿Fue útil?

Solución

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

Originalmente planeé tener complementos separados para cada versión de Outlook y, como tal, mis espacios de nombres y convenciones de nomenclatura, etc., fueron:

  • [Empresa].AddIns.Outlook2003
  • [Empresa].AddIns.Outlook2007
  • [Empresa].AddIns.Outlook2010

Sin embargo, logré crear el complemento para apuntar a los 3, así que cambié el nombre de [Empresa].AddIns.Outlook2003 a [Empresa].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 > Clases.

Tan pronto como cambié esta última configuración en VS, ¡funcionó!

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

Es un poco molesto que este problema no haya aparecido en 2007/2010, ya que puede haber sido más fácil de localizar.

Otros consejos

Si aún no lo ha hecho, debe configurar las siguientes variables de entorno para ayudarle a solucionar problemas de carga de complementos:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

El primero dará como resultado la creación de un archivo *.log en el directorio que contiene los ensamblados de complementos 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 su 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 crear todas las claves de registro necesarias en la configuración.Puedes comprobar el Entradas de registro requeridas sección en el siguiente artículo de MSDN para verificar que se hayan creado las claves correctas en la configuración:

Implementación de complementos a nivel de aplicación

Recomiendo seguir los pasos de solución de problemas que se describen aquí:

Hamed Ahmadi:¡Mi complemento de Office no se carga!

¿Está seguro de que Outlook no ha deshabilitado el complemento por algún motivo?Si lo ha instalado a nivel de máquina (a diferencia del nivel de usuario), no aparecerá en la lista de complementos Com en ningún caso.¿Quizás intentar instalarlo como un complemento por usuario (para que aparezca en la lista) y continuar desde allí?

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