Visual studio 如何在VisualStudio调试器中调试LinqPad查询?

Visual studio 如何在VisualStudio调试器中调试LinqPad查询?,visual-studio,debugging,linqpad,Visual Studio,Debugging,Linqpad,我可以附加调试器并使其中断-但它很难找到.cs文件,我认为LinqPad会将其作为构建的一部分删除。。8-(如果你打电话 Debugger.Launch(); Debugger.Break(); 要在LINQPad脚本中启动断点,LINQPad将猜测您希望使用VS调试脚本,并且不会删除.cs文件。 启动LINQPad 在VS中,打开调试->附加到进程 选择LINQPad.exe 在LINQPad C#code调用的代码中设置断点,或在LINQPad脚本中编写Debugger.Break(),

我可以附加调试器并使其中断-但它很难找到.cs文件,我认为LinqPad会将其作为构建的一部分删除。。8-(

如果你打电话

Debugger.Launch();
Debugger.Break(); 
要在LINQPad脚本中启动断点,LINQPad将猜测您希望使用VS调试脚本,并且不会删除.cs文件。

  • 启动LINQPad
  • 在VS中,打开调试->附加到进程
  • 选择LINQPad.exe
  • 在LINQPad C#code调用的代码中设置断点,或在LINQPad脚本中编写Debugger.Break(),使调试器停止
  • 从LINQPad执行脚本并观看魔术

如果您的LINQPad代码正在调用某个引用的C#assembly中的某个方法,并且您希望在Visual Studio 2015中调试该程序集,这对我很有用:

  • 构建您的解决方案
  • 或者,运行LINQPad脚本,让它崩溃,等等。在右下角的LINQPad状态栏中,注意浅蓝色的PID
  • 在VS中,CTRL+ALT+P以附加到进程。使用您看到的PID附加到LINQPad UserQuery进程
  • 在VS中的此处放置断点
  • 运行linqpad查询并跳转到VS。您应该达到断点

  • 我刚刚又尝试了一个C#程序,像这样的“代码”void Main(){Debugger.Launch();int I=0;Debugger.Break();I.Dump()}“code”VS Launchs无法找到代码。但是,然后从LP再次运行,VS然后找到.cs文件…我遇到了问题,然后意识到我正在尝试将VS 2008调试器附加到LINQPad.exe;它必须是支持.NET 4+的VS版本(例如VS 2012)。在调用Debugger.Break()之前,您应该检查Debugger.IsAttached属性。请注意,在提出此问题后,Linqpad引入了一个新的高级版本的Linqpad,其中包含自己的调试器。