8

特定の条件で Debugger.Launch() と Debugger.Break() を追加するコードがあり、この機能は Windows 8 / Windows Server 2012 では動作しないようです

以前のバージョンの Windows では、これは問題なく機能し、Visual Studio の [デバッグ] ダイアログを表示するウィンドウを起動していました。

これは、Windows8/Windows Server 2012 の新しい重大な変更ですか?

4

2 に答える 2

6

この問題の一時的な回避策を含む Microsoft Connect のオープン チケットがあります。

Just-In-Time デバッグ、試行された操作はサポートされていません

以下のコメントから:

HKCR\AppID\{E62A7A31-6025-408E-87F6-81AEB0DC9347}\AppIDFlagから0x28に変更するだけ0x8です。

于 2013-01-18T00:07:40.533 に答える
3

これは確かに 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 プロセスをデバッグできるようにすることもできます。

于 2012-08-13T20:46:23.927 に答える