2011-04-06 17 views

Respuesta

44

Si llama Debugger.Launch()/Debugger.Break() para iniciar el punto de interrupción dentro de la secuencia de comandos LINQPad, LINQPad adivinará que desea utilizar VS para depurar el guión y no se eliminará el archivo .cs

+1

Acabo de tener otra oportunidad con un programa C# como este 'code'void Main() { \t Debugger.Launch(); \t int i = 0; \t Debugger.Break(); \t i.Dump(); } el 'código' VS inicia no puede encontrar el código. PERO luego se ejecuta nuevamente desde LP, VS luego encuentra el archivo .cs .... – Adrian

+0

Estaba teniendo problemas con esto, luego me di cuenta de que estaba tratando de conectar un depurador VS 2008 a LINQPad.exe; * tiene * que ser una versión de VS que sea compatible con .NET 4+ (como VS 2012). –

24
  • inicio LINQPad
  • En VS, depuración abierta -.> Unir al Proceso ...
  • Elija LINQPad.exe
  • Establezca el punto de interrupción en su código llamado por el código LINQPad C#, o escriba Debugger.Break() en su secuencia de comandos LINQPad en la que desea detener el depurador.
  • Ejecute el script desde LINQPad y mire la magia.
+2

Debe verificar la propiedad Debugger.IsAttached antes de llamar a Debugger.Break(). – Tormod

2

Si el código LINQPad está llamando a un método de alguna de montaje # C se hace referencia y que desea depurar esa asamblea en Visual Studio 2015, esto funcionó para mí:

  1. construir su solución.
  2. Opcionalmente, ejecute su script LINQPad, deje que se bloquee, etc. En la barra de estado de LINQPad inferior derecha, observe el PID en color azul claro.
  3. En VS, CTRL + ALT + P para adjuntar al proceso. Adjunte al proceso LINQPad UserQuery con el PID que vio.
  4. Coloque un punto de interrupción aquí en VS.
  5. Ejecute la consulta de linqpad y desplácese a VS. ¡Deberías golpear tu punto de quiebre!
Cuestiones relacionadas