1

C#のWindowsサービスがあります。そのサービスコードでは、Main()を定義し、さまざまな引数をキャプチャします。引数が「install」の場合、コードを呼び出してサービスをインストールします。argがインストールされているとき、私はサービスを実行しておらず、インストールしているだけなので、これはその時点ではコンソールアプリにすぎないように思われることに注意してください。

vs.net 2012でコードをデバッグすると、すべてのConsole.WriteLine()出力がデバッグウィンドウに表示されます。これは、VS.NETがSTDOUTをデバッグウィンドウにマップするためだと思います。

しかし、コマンドプロンプトを開いてコマンドラインを実行するmyservice.exe installと、コンソールウィンドウに出力が表示されません。実行するmyservice.exe install > out.txtと、out.txtにすべての出力が表示されます。何が起こったのでしょうか。また、そのMain()コードを取得して、実際に出力をコンソールウィンドウに送信するにはどうすればよいですか。

4

1 に答える 1

3

これは、プロジェクトの出力タイプが原因である可能性があります。デフォルトの Windows アプリケーション出力タイプでは、コンソール ウィンドウが自動的に表示されないことに注意してください。このために、出力タイプをコンソール アプリケーションに変更することができます。

于 2013-03-22T06:45:24.447 に答える