特定の条件で Debugger.Launch() と Debugger.Break() を追加するコードがあり、この機能は Windows 8 / Windows Server 2012 では動作しないようです
以前のバージョンの Windows では、これは問題なく機能し、Visual Studio の [デバッグ] ダイアログを表示するウィンドウを起動していました。
これは、Windows8/Windows Server 2012 の新しい重大な変更ですか?
特定の条件で Debugger.Launch() と Debugger.Break() を追加するコードがあり、この機能は Windows 8 / Windows Server 2012 では動作しないようです
以前のバージョンの Windows では、これは問題なく機能し、Visual Studio の [デバッグ] ダイアログを表示するウィンドウを起動していました。
これは、Windows8/Windows Server 2012 の新しい重大な変更ですか?
この問題の一時的な回避策を含む Microsoft Connect のオープン チケットがあります。
Just-In-Time デバッグ、試行された操作はサポートされていません
以下のコメントから:
HKCR\AppID\{E62A7A31-6025-408E-87F6-81AEB0DC9347}\AppIDFlag
から0x28
に変更するだけ0x8
です。
これは確かに Windows 8 での変更です。公開されているドキュメントはまだ見つかりませんでした (ただし、Win8 はまだ顧客に出荷されていません)。ただし、必要に応じて、関連チームの誰かにこの情報を MSDN で公開するよう依頼します。
これは、Windows Vista で開始されたセッション 0 分離作業の一部です。
Win7/2008R2 の設定に戻るには、次の手順を実行する必要があります。
レジストリ キーのHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows
場合は、" NoInteractiveServices " 値を0に設定します。これは (Windows 8 では) デフォルトで 1 です。これにより、セッションで視覚的なダイアログを容易にするサービス、" Interactive Services Detection " ( ui0detect )。このキーを設定しないと、ui0detect サービスは「機能がサポートされていません」などのエラーで起動に失敗します。
net start ui0detect
もちろん、このサービスを Windows で自動的に開始し、常に起動してセッション 0 プロセスをデバッグできるようにすることもできます。