8

我们有在特定条件下添加 Debugger.Launch() 和 Debugger.Break() 的代码,并且此功能似乎在 Windows 8 / Windows Server 2012 中不起作用

在以前的 Windows 版本中,这工作得很好,启动一个显示 Visual Studio 调试对话框的窗口。

这是 Windows8/Windows Server 2012 中的一个新的突破性变化吗?

4

2 回答 2

6

microsoft connect 有一个未解决的票证,其中包含此问题的临时解决方法。

即时调试,不支持尝试操作

从下面的评论:

只需HKCR\AppID\{E62A7A31-6025-408E-87F6-81AEB0DC9347}\AppIDFlag从更改0x280x8

于 2013-01-18T00:07:40.533 回答
3

这确实是 Windows 8 中的一个变化。我还没有找到任何公共文档(尽管 Win8 尚未交付给客户)。但是,我会要求相关团队中的某个人酌情在 MSDN 上提供此信息。

这是从 Windows Vista 开始的 Session 0 隔离工作的一部分。

要返回 Win7/2008R2 设置,您需要执行以下操作:

对于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows,将“ NoInteractiveServices ”值设置为0,(在 Windows 8 中)默认为 1。这允许您手动启动有助于在会话中为您提供可视对话框的服务,“交互式服务检测”(ui0 检测)。如果不设置此键,ui0detect 服务将无法启动,并出现“不支持功能”等错误。

net start ui0detect

当然,您可以选择使该服务随 Windows 自动启动,并始终启动到能够调试会话 0 进程。

于 2012-08-13T20:46:23.927 回答