2016-04-05 9 views
0

私は、次のコードを持っていますが、できません(それもます。installutilで行うことができますが、それは手動で行うことができない)私はプログラム的にサービスをインストールする必要がありますC#の

を.exeファイルのパスを使用してWindowsサービスをインストールしますそのコードは私が知りませんいくつかのクラス情報を求めるので、それを正しく行う方法を理解し、teh.exeを使用してそれを実行するためにそれを使用する方法を知る必要があります。次のように コードは次のとおりです。

public static void InstallService(string ExeFilename) 
{ 
    System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename,null); 
    Installer.UseNewContext = true; 
    Installer.Install(null); 
    Installer.Commit(null); 
} 
+0

それをsolveedどのようなサービスはパラメータを受け取りますか? –

+0

このコードは、私が持っている簡単なWindowsサービスで動作します。どうしたの? –

+0

System.Configuration.Install.AssemblyInstallerインストーラー= new System.Configuration.Install.AssemblyInstaller(ExeFilename、null); nullは何を表していますか?それはコマンドラインについて何か言います。 サービスの.exeへのパスを使用するにはこれが必要です –

答えて

0
public void InstallService(string ExeFilename) 
     { 
      try 
      { 
       System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename, null); 
       Installer.UseNewContext = true; 
       Installer.Install(null); 
       Installer.Commit(null); 
       DialogResult NovoDialog = new DialogResult(); 
       NovoDialog = MessageBox.Show("Deseja Iniciar o Serviço?", "Orca ++ Updater", MessageBoxButtons.YesNo); 
       if (NovoDialog == DialogResult.Yes) 
       { 
        ServiceController service = new ServiceController("OrcaService"); 
        TimeSpan timeout = TimeSpan.FromMilliseconds(1500); 
        service.Start(); 
        service.WaitForStatus(ServiceControllerStatus.Running, timeout); 

       } 
      } 
      catch (Exception ex) 
      { 
       Erro NovoErro = new Erro(); 
       Program.Erro = ex.ToString(); 
       NovoErro.ShowDialog(); 
      } 
     } 

これは私が

関連する問題