7

Estoy intentando escribir un complemento de Outlook en C# usando Visual Studio 2010 y WPF y está resultando difícil de depurar. Me gustaría tener VS adjuntar automáticamente a OUTLOOK.EXE al inicio para que pueda golpear puntos de interrupción fácilmente. Entonces, entré en las propiedades del proyecto > Pestaña de depuración > Acción de inicio y cambié esta configuración de "Iniciar proyecto" (que por supuesto no funcionará porque es una DLL) a "Iniciar programa externo".Dificultad para iniciar el depurador de VS 2010 adjunto a Outlook para depurar el complemento

Esto parece funcionar; Se inicia Outlook y claramente se adjunta el depurador. Sin embargo, no se golpean puntos de interrupción. Noté que cuando entro en el cuadro de diálogo "Adjuntar al proceso", dice que Outlook solo ejecuta x86 (lo que creo que es incorrecto porque mi código administrado se está ejecutando en ese espacio de direcciones, ¿no?), Así que en la pestaña Depurar de el panel de Configuración hice clic en "Habilitar la depuración del código no administrado", y ahora me he quedado sin ideas. Tampoco puedo pausar el proceso porque me aparece un error diciéndome que el proceso no está ejecutando el tipo de código que seleccioné para depurar. Sé que mi Addin definitivamente está cargado y ejecutándose porque puedo ver que funciona.

Como solución temporal he estado usando System.Diagnostics.Debugger.Launch(), que es molesto, pero funciona. ¿Algunas ideas?

Respuesta

4

Resulta que Outlook no carga el CLR al inicio (debe cargarse poco después cuando sea necesario), lo que aparentemente confunde el depurador VS y hace que solo depure el código nativo. Para obligarlo a cargar el CLR de inmediato, crear un archivo OUTLOOK.EXE.config en la misma carpeta con:

<configuration> 
    <startup> 
     <supportedRuntime version="v2.0.50727"/> <!-- or whatever --> 
    </startup> 
</configuration> 

que es de this blog post. Entonces, incluso cuando comienza adjunta VS, será depurar código CLR

Cuestiones relacionadas