在C#interactive中获取调试器上下文

use*_*648 33 c# debugging visual-studio roslyn

C#Interactive似乎比立即窗口更强大(至少它处理LINQ中经常使用的lambda表达式 - 请参阅Visual Studio调试"快速监视"工具和lambda表达式),但看起来它不能用作一个替代品,因为它不知道调试器上下文.有没有办法访问调试器上下文?

我已经看到在F#中获取调试器上下文,它可能需要相同的东西,但也许有新的/不同的东西可用.

http://extendedimmediatewin.codeplex.com/可能很有用,但看起来已经死了,虽然有人在2011年10月18日说他打算将它移植到VB.Net(http://extendedimmediatewin.codeplex.com/discussions/75589).

Kev*_*lch 40

免责声明:我在Roslyn团队为Microsoft工作.

不幸的是,我们现在无法获得调试器上下文.我们知道它会很有用,当我们完成Roslyn的更多核心可交付成果后,我们希望进行更多调查并了解可以做些什么.

  • 多年以后,有没有解决过这个问题? (39认同)
  • 如果团队对最先进的编程使用/功能更感兴趣,C#可能是现代时代的一种更好的编程语言,如Python和许多其他语言.这么多年后,为了调试一小段代码,我仍然需要创建一个完整的控制台项目.这就是人工智能,机器学习,数据挖掘领域的人们不选择C#作为主要语言的原因之一. (6认同)

J B*_*ice 40

不是一个完整的解决方案,但是在VS2015中,在使用Project运行Initialize Interactive之后,可以使用Debug > Attach to Process连接到该InteractiveHost.exe进程.

然后,您可以从项目中调试功能.但是,凯文解释说,你将无法在交互式窗口中调试一次性功能.

如旁注,/sf/answers/2845524041/指出,打开解决方案之前,您可能必须打开C#Interactive窗口才能成功初始化与Project的交互

  • 2019 年也适用。顺便说一句,如果在 VS 切换到调试模式后“丢失”交互窗口 - 只需转到“查看”-“其他窗口”-“C# 交互” (4认同)