¿Cómo solucionar un complemento de VSTO que no se carga?

Mi complemento VSTO Outlook dejó de funcionar repentinamente en una máquina del cliente (no se carga, no aparece un mensaje de error) y tengo problemas para solucionar problemas. La máquina es Windows 7 x86, Outlook 2007. El complemento está escrito con Visual Studio 2008 y utiliza VSTO 2005 con las PIA de 2003 (porque también necesitamos admitir Outlook 2003). Funciona perfectamente bien en otras máquinas.

Esto es lo que traté de obtener un resultado útil de resolución de problemas:

  • Agregue la variable de entorno VSTO_SUPPRESSDISPLAYALERTS (establecida en 0 ) .
  • Inicie Outlook con permisos administrativos.
  • Mira en el registro de eventos.

Nada. El complemento simplemente no se cargará sin dar ninguna indicación del motivo. También revisé los “sospechosos habituales” (política de CAS, PIA instalados, LoadBehavior en el registro, reinstalación de VSTO y el complemento).

Algunas otras observaciones:

  • LoadBehavior en el registro permanece en 3 .
  • El complemento aparece como “deshabilitado” en Outlook. Verificando su checkbox en “Complementos COM” simplemente no hace nada (no hay error, la casilla se borra nuevamente al ingresar el formulario por segunda vez).
  • Funciona perfectamente bien en otras máquinas de clientes, y funcionó perfectamente bien en esta máquina. (No, el cliente no puede decirme qué cambió en su máquina).
  • Tengo un mensaje Trace.WriteLine en la parte superior de mi código (primera línea en el controlador ThisAddIn_Startup ), que no se alcanza (lo he comprobado con DebugView ). Por lo tanto, la razón para no cargar no es una excepción en mi complemento sino una falla de VSTO para cargar el complemento o de Outlook para cargar VSTO.

En lugar de una depuración más aleatoria (“prueba esto …”, “intenta eso …”), me gustaría forzar a Outlook y / o VSTO a decirme qué es lo que está mal , es decir, darme un mensaje de error útil. de simplemente no hacer nada al intentar habilitar el complemento. ¿Algunas ideas?

¿Intentó habilitar el complemento nuevamente? No se ejecutará después de su cola desactivada. Después de volver a habilitarlo desde la pantalla del complemento deshabilitado, puede marcar la casilla en la pantalla COM-AddIn para que se cargue, lo que le solicitará más detalles ya que configuró la variable VSTO_SUPPRESSDISPLAYALERTS sobre lo que pudo haber sucedido en el primer lugar.

Aquí hay un poco más de detalle sobre la solución de RobertG5 (demasiado tiempo para un comentario):

El problema era que el complemento había sido inhabilitado por Outlook. Como he aprendido, eso es algo diferente al escenario “no habitual” de carga. La clave para darse cuenta de esto era notar que el complemento no aparecía en Complementos de aplicaciones inactivas , sino más bien en Complementos de aplicaciones desactivadas . Eso hace la diferencia: en este último caso, simplemente ir a la pantalla COM-AddIn y marcar la checkbox simplemente no hace nada. (Supongo que un buen cuadro de mensaje “No se puede cargar este complemento porque se ha desactivado mucho” sería demasiado pedir … suspiro ).

Entonces, ¿cómo vuelvo a habilitar un complemento difícilmente inhabilitado?

  1. En el cuadro Administrar , cambie los complementos COM a los complementos deshabilitados y luego haga clic en Ir.
  2. Seleccione el complemento y haga clic en Habilitar . Haga clic en Cerrar .

Bien, ahora el complemento se puede cargar de nuevo:

  1. En el cuadro Administrar , cambie Complementos deshabilitados a Complementos COM y luego haga clic en Ir.
  2. seleccione la checkbox junto al complemento deshabilitado. Haga clic en Aceptar .

Referencia: http://msdn.microsoft.com/en-us/library/ms268871.aspx

Sé que esto es antiguo, pero por varias razones he estado solucionando recientemente los complementos de Office que no se cargan.

Es un montón de tiempo masticado, así que pensé en compartirlo, así que si tu complemento no se carga o no está visible, etc., prueba estas soluciones.

1). El complemento no está cargado.

Sin cargar. Se produjo un error de tiempo de ejecución durante la carga del complemento COM.

enter image description here

El problema se debe a la falta de .Net Framework 3.5 o 4.0.

Nota: en un x64 solo necesito .Net 4.0, sin embargo, en una PC x86 obtuve el error después de instalar .Net 4.0. Siguiendo este artículo , instalé .Net 3.5 también y luego funcionó en la PC x86.

2). El complemento no está cargado.

Verifique que haya deletreado correctamente las claves de registro. En ocasiones, escribo Comportamiento, pero en la ortografía estadounidense es Comportamiento, así que compruebe “LoadBehavior”

enter image description here

También asegúrese de que “LoadBehavior” sea 3, para obtener una lista de valores, vea http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior

3). El complemento no está visible.

Puede hacer que el complemento sea visible yendo a Excel> Archivo> Opciones> Complementos> seleccione la lista desplegable Administrar y configúrelo en Complementos COM> Haga clic en IR. En el cuadro de diálogo Complementos COM, asegúrese de que el Complemento esté marcado.

4). El complemento estaba deshabilitado.

Alternativamente, el complemento puede estar oculto porque ha sido desactivado. Puede habilitar el complemento yendo a Excel> Archivo> Opciones> Complementos> seleccione la lista desplegable Administrar y configúrelo Deshabilitado y haga clic en IR. Seleccione el complemento que se ha deshabilitado y haga clic en Habilitar.

enter image description here

5). La fórmula definida por el usuario de ExcelDNA no se muestra correctamente

En lugar de ver el valor de la celda, verá: #NAME?

Establezca la siguiente clave de registro:

  HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options\OPEN: 

Con el valor correcto:

  /R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll" 

6). Excel HANGS después de mostrar un cuadro de mensaje

Regrese a la configuración de la aplicación:

  xlApp.ScreenUpdating = true; xlApp.DisplayAlerts = true; xlApp.Calculation = XlCalculation.xlCalculationAutomatic; xlApp.UserControl = true; xlApp.EnableEvents = true; 

7). Más resolución de problemas

Habilite su archivo de registro VSTO agregando lo siguiente en las variables de entorno de su sistema:

 NAME: VSTO_LOGALERTS VALUE: 1 

Puede haber un error de excepción por lo que su complemento no se está cargando.

Puede consultar esta fuente para obtener más información sobre el registro y las alertas de VSTO, pero en esencia, cambia dos valores de variables de entorno según lo que necesite hacer:

Visualización de avisos de alerta VSTO

Para mostrar cada error en un cuadro de mensaje, establezca la variable VSTO_SUPPRESSDISPLAYALERTS en 0 (cero). Puede suprimir los mensajes estableciendo la variable en 1 (uno).

Registro de alertas de VSTO en un archivo de registro

Para escribir los errores en un archivo de registro, establezca la variable VSTO_LOGALERTS en 1 (uno).

Visual Studio Tools para Office crea el archivo de registro en la carpeta que contiene el manifiesto de la aplicación. El nombre predeterminado es .manifest.log. Para detener los errores de registro, configure la variable a 0 (cero).

Sugeriría usar una herramienta de Microsoft para diagnosticar problemas de complemento llamados AddinSpy .

Divertido para mí, intenté reiniciar. Me lo arregló Sin embargo, la razón por la que lo arregló es que tuve un Excel.exe rogue que se ejecutaba oculto. El complemento no se iniciaba debido a la ejecución de esta otra aplicación Excel (estaba migrando una aplicación MSAccess a VSTO), por lo que Access tenía una aplicación de automatización abierta.

En resumen, si su complemento no se está iniciando, la comprobación rápida es simplemente asegurarse de que no haya otras aplicaciones de Excel ejecutándose. Esto, por supuesto, solo se aplica cuando intentas instalar o poner en marcha una nueva.

(Utilicé este enlace) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/

También hay otra posibilidad aquí de por qué no recibe retroalimentación incluso con las variables de entorno mencionadas anteriormente. Descubrí que si recibía este error después de una instalación (no un VSTO anterior que había estado funcionando) también debe verificar el registro y la entrada “Manifiesto” si tiene uno.

Si bien Jeremy Thompson señala el Registro en su segundo punto, no muestra la entrada del Manifiesto que podría ser parte de la configuración de su registro. Si su entrada de manifiesto no está apuntando a la ruta correcta y al archivo, aparecerá en la lista de complementos con una entrada de “No cargada” .

Aquí vemos una entrada incorrecta que solo apunta al archivo VSTO solamente, sin ruta. enter image description here

Esto hará que su AddIn parezca cargado con errores, pero no aparecen errores apareciendo para usted y haciendo las cosas frustrantes. Por lo tanto, se verá así a continuación, observe que la entrada de ubicación a continuación tampoco muestra la ruta. enter image description here

Corrija la entrada colocando la ruta correcta junto con el nombre del archivo y lo arreglará.

La falta de errores que supongo proviene del hecho de que inicialmente no apuntaba a nada, por lo que enumera el complemento porque está en el registro, aunque no hay nada que cargar.

Finalmente convencí a Word para que me dijera:

  Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateStartupObjectException: Could not create an instance of startup object blaghblagh ---> System.TypeInitializationException: The type initializer for 'foo' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'blah' or one of its dependencies. The system cannot find the file specified. 

Después de eso, gracias a [1], FusLogvw resolvió rápidamente el problema para mí.

[1] No se pudo cargar el archivo o ensamblado o una de sus dependencias