2

私は初心者としてTopShelfをチェックしていました。

コンソールアプリをコンパイルすると、次のようにサービスをインストールできるようになります。

MySampleWindowsService.exe install

開始:

MySampleWindowsService.exe start

私が理解していないのは、私のコンソールアプリがこれらのパラメーターに対して何もしないということです。

質問:では、TopShelfはこれらの「インストール」または「開始」引数をどのようにキャプチャしますか?

4

1 に答える 1

5

おそらくEnvironment.CommandLineまたはを使用しEnvironment.GetCommandLineArgsます。

プロセスのコマンドラインは、プロセスの作成時に確保されたメモリの特別な領域に格納されます。これにより、プロセスの実行中にいつでも使用できるようになります。GetCommandLineこれは、Windowsプロセスでコマンドライン引数を取得する「公式」の方法であるネイティブ関数によって取得でき、.NETEnvironmentメンバーによってラップされます。

多くの言語でコマンドラインをパラメータとして「main」関数に渡すことは、その言語によって提供される便利な機能です。GetCommandLineコンパイラーは、結果を呼び出してパラメーターとしてmain(または同等のもの)に渡すスタートアップコードを生成します。同様に、fromの戻り値(存在する場合)mainは、通常、コンパイラーによって生成されたプロセス分解ロジックによってプロセスの終了コードとして設定されます。

于 2013-02-21T12:27:34.977 に答える