私がWindows8をインストールした後、このような完全に正当なステートメントはもう機能しません:
#if DEBUG
Debugger.Launch();
#endif
サービスはそのことを無視し始めます。はい、デバッグモードでプロジェクトをビルドしています。
これを-に変更するとDebugger.Break()
、サービスは失敗しますが、デバッガーを接続するためのダイアログは表示されません。
私がWindows8をインストールした後、このような完全に正当なステートメントはもう機能しません:
#if DEBUG
Debugger.Launch();
#endif
サービスはそのことを無視し始めます。はい、デバッグモードでプロジェクトをビルドしています。
これを-に変更するとDebugger.Break()
、サービスは失敗しますが、デバッガーを接続するためのダイアログは表示されません。
Debugger.Launch
ビジュアル GUI でアプリケーションを起動します。デフォルトでは、サービスはデスクトップと対話しないため、サービスが行うことは「表示」できません。
デスクトップと対話するためのサポートは、Windows サービスから徐々に削除されました (たとえば、「デスクトップと対話する」オプションは一部のサーバー バージョンから削除されました)。彼らはこの傾向を続けてきたと思います。
Windows サービスは本質的に GUI アプリケーションではなく、ユーザーがデスクトップにログインする前後に実行できるため、常にGUI を表示することはできません。サービスで GUI を持つ機能に依存することは、一般的には良い考えではありません。
サービスのデバッグが必要な場合は、通常のアプリケーションとして実行して、Launch や Debug などを実行できるようにすることをお勧めします。恥知らずなプラグイン:それをサポートするサービスを作成する方法については、Visual Studio での Windows サービスの開発をご覧ください。
これは Windows ストア アプリですか、それともデスクトップ アプリですか?
プロジェクト (C# 実行可能プロジェクトがある場合) を右クリックし、[プロパティ] を選択してみてください。次に、オプションの左側のサイドバーで、[デバッグ] をクリックします。[アクションの開始] セクションで、[起動しないで、起動時にコードをデバッグする] チェックボックスをオンにします。
F5 キーを押して、コード内にブレークポイントを設定して Visual Studio を実行すると、プロセスが開始されるまで待機します。次に、(Visual Studio の外部で) アプリケーションを実行すると、Visual Studio がデバッガーをアタッチします。