我有一个 C# 控制台应用程序,由外部程序调用,外部程序为其提供命令行参数。 为了简化调试,我创建了一个条件方法,我在
Main()
: 中立即调用它
[System.Diagnostics.Conditional("DEBUG")]
static void BreakIfInDebugMode()
{
System.Diagnostics.Debugger.Break();
}
在外部程序中,当我想要调试时,我将外部调用指向我的.exe的
bin\Debug
位置,会弹出Visual Studio即时调试器窗口,然后我选择要调试的Visual Studio实例我目前正在使用做开发。
不同的是,从今天开始,当前运行的 Visual Studio 实例不会出现。 我只能选择启动一个新实例。 即使我通过调试器提示启动的新实例在我让它运行时也不会显示。 这是一个巨大的麻烦,因为我已经有一个正在运行的实例,并且项目已打开,并且已经在我想要调试的代码周围设置了断点。
我注意到从“关闭程序/调试程序”到“选择 Visual Studio 对话框的实例”需要比平时更长的时间。 为什么调试器选择找不到我已经运行的调试器有什么解决方案吗?
编辑:执行重新启动后,预期的行为已恢复。 通过不太激烈的措施来解决仍然会很好。
也许该进程以管理员身份运行,而 VS 不是。这是我的问题。
请检查您是否已在 Visual Studio 中启用名为“托管”和/或“本机”的复选框:
工具->选项->调试->即时
我最近遇到了这个问题,我不小心禁用了这些复选框。它可能与您的问题无关,因为它在重新启动后即可工作。我只是发布此内容,以便其他人可能会发现它有帮助。
除了本页面上已经发布的两个不同答案之外,似乎这个问题正在(短暂)卷土重来。但这次它是Visual Studio 2017
早期版本中的
真正的错误。
无论如何 - 无需惊慌,它已在 Visual Studio 2017 Version 15.3 preview 2
已修复。 只需确保您使用的是此版本或更高版本即可。
请参阅来源了解更多详情。
对我来说,这是一个正在运行的额外
devenv.exe
进程。 杀死这个进程解决了我的问题。
(我发现该过程是因为我开始了修复安装,但由于
devenv.exe
正在运行而无法完成。)