2

ConsoleOrService.exeという名前の実行可能ファイルがで書かれていると仮定しますC#。現在はハイブリッド車です。コマンドラインで起動するか、.Netを使用してインストールしてからinstallutil ConsoleOrService.exeサービスを開始することができます。3番目のオプションが欲しいです:コマンドラインで次のように実行します:ConsoleOrService.exe --installそしてそれですべての作業を実行します。

  1. これは可能ですか?
  2. これは難しいですか?
  3. どうすれば始められますか?

ありがとうございます。ご不明な点がございましたらお知らせください。

4

1 に答える 1

2

それは実際には非常に簡単です。私は自分のサービスの多くでそれを使用しました (実際、私のサービスはすべて独自のインストール/アンインストールを実行できます。/installまたはなどのコマンドライン スイッチで制御し/uninstallます。

インストールは次のように実行されます。

private static void InstallService()
{
 var ti  = new System.Configuration.Install.TransactedInstaller();
 var si  = new MyServiceInstaller();
 var cl  = new string[] { string.Format(CultureInfo.InvariantCulture, "/assemblypath={0}", System.Reflection.Assembly.GetExecutingAssembly().Location) };
 var ctx = new System.Configuration.Install.InstallContext(null, cl);

 ti.Installers.Add(si);
 ti.Context = ctx;
 ti.Install(new Hashtable());
}

ti.Uninstall(null);の代わりにを呼び出す点を除いて、アンインストールは同じですti.Install(...);

MyMyServiceInstallerは、クラスから継承するSystem.Configuration.Install.Installerクラスです (通常はサービスにあるように)。

于 2010-09-02T20:05:10.920 に答える