¿Cómo solucionar problemas de un complemento VSTO que no se carga?
Mi complemento VSTO Outlook de repente dejó de funcionar en la máquina de un cliente (no se carga, no aparece ningún mensaje de error) y no puedo solucionar el problema. La máquina es Windows 7 x86, Outlook 2007. El complemento está escrito con Visual Studio 2008 y usa VSTO 2005 con los PIA 2003 (porque también necesitamos admitir Outlook 2003). Funciona perfectamente bien en otras máquinas.
Esto es lo que intenté para obtener resultados útiles para la solución de problemas:
- Agregue la
VSTO_SUPPRESSDISPLAYALERTS
variable de entorno (establecida en0
) . - Inicie Outlook con permisos administrativos.
- Mire el registro de eventos.
Nada. El complemento simplemente no se carga sin dar ninguna indicación del motivo. También revisé los "sospechosos habituales" (política CAS, PIA instalados, LoadBehavior en el registro, reinstalación de VSTO y el complemento).
Algunas otras observaciones:
LoadBehavior
en el registro se queda en3
.- El complemento aparece como "deshabilitado" en Outlook. Marcar su casilla de verificación en "Complementos COM" simplemente no hace nada (no hay error, la casilla de verificación 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
Trace.WriteLine
mensaje en la parte superior de mi código (primera línea en elThisAddIn_Startup
controlador), al que no se llega (lo verifiqué con DebugView ). Por lo tanto, el motivo por el que no se carga no es una excepción en mi complemento, sino más bien una falla de VSTO al cargar el complemento o de Outlook al cargar VSTO.
En lugar de una depuración más aleatoria ("pruebe esto...", "pruebe aquello..."), realmente me gustaría forzar a Outlook y/o VSTO a decirme qué está mal , es decir, a darme un mensaje de error útil. de simplemente no hacer nada al intentar habilitar el complemento. ¿Algunas ideas?
Aquí hay un poco más de detalles sobre la solución de RobertG5 (demasiado largo para un comentario):
El problema era que Outlook había desactivado completamente el complemento . Como he aprendido, eso es algo diferente al escenario "habitual" sin carga. La clave para darse cuenta de esto fue notar que el complemento no aparecía en Complementos de aplicaciones inactivas , sino en Complementos de aplicaciones deshabilitadas . Eso marca la diferencia: en el último caso, simplemente ir a la pantalla COM-AddIn y marcar la casilla de verificación no hace nada. (Supongo que un bonito cuadro de mensaje "No puedes cargar este complemento porque ha sido deshabilitado por completo" sería demasiado pedir... suspiro ).
Entonces, ¿cómo vuelvo a habilitar un complemento deshabilitado por completo?
- En el cuadro Administrar , cambie Complementos COM a Complementos deshabilitados y luego haga clic en Ir.
- Seleccione el complemento y haga clic en Habilitar . Haga clic en Cerrar .
Bien, ahora el complemento se puede cargar nuevamente:
- En el cuadro Administrar , cambie Complementos deshabilitados a Complementos COM y luego haga clic en Ir.
- seleccione la casilla de verificación junto al complemento deshabilitado. Haga clic en Aceptar .
Referencia: http://msdn.microsoft.com/en-us/library/ms268871.aspx
¿Intentaste habilitar el complemento nuevamente? No se ejecutará después de que esté en la cola deshabilitada. 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 luego debería brindarle más detalles desde que configuró la VSTO_SUPPRESSDISPLAYALERTS
variable sobre lo que pudo haber sucedido en la primera lugar.