2011-11-09 12 views
9

Tengo un script de PowerShell y cargar un archivo DLL a través de [Reflection.Assembly] :: Load¿Depurar C# dll cuando se carga en el proceso de powershell? ¿Es posible?

quiero poner brakepoints en el código fuente de esa DLL, etc. añadir relojes

adhiera al powershell proceso no funcionó (en realidad probé el powershell ise). No hay otros procesos para vincular. ¿Algunas ideas? Una vez una excepción (es mi excepción, así que esto debería suceder) apareció en VS pero no pude reproducirla.

+2

Ciertamente depuré el código C# adjuntando al proceso powershell.exe. No recuerdo haberlo hecho nunca con el ISE, pero no sé por qué eso tampoco funcionaría. – OldFart

Respuesta

8

Como alternativa, puede crear una clase de ayuda en su biblioteca:

namespace Something { 
    public static class DebugHelper { 
     public static void AttachDebugger() { 
      System.Diagnostics.Debugger.Launch(); 
     } 
    } 
} 

A continuación, puede llamar a ese método de PowerShell, y obtendrá el depurador asociado.

+2

Me di cuenta de que a veces no funciona. VS Lanza pero la excepción no queda atrapada. Tenga en cuenta que usé esta línea directamente desde el shell de energía: [System.Diagnostics.Debugger] :: Launch() – naeron84

+2

Mi idea era usar [Something.DebugHelper] :: AttachDebugger(), por lo que tiene el depurador en su código , y luego es fácil agregar puntos de interrupción, etc., pero probablemente su solución sea aún más simple. –

Cuestiones relacionadas