2016-04-05 6 views
0

Je dois installer un service programatically (Il peut même être fait avec InstallUtil mais il ne peut pas être fait manuellement)l'installation d'un service Windows avec .exe chemin C#

je le code suivant mais ne peut pas comprendre comment le faire correctement puisque ce code demande des informations de classe que je ne connais pas et j'ai besoin de savoir comment l'utiliser pour l'exécuter en utilisant le fichier .exe. Le code est le suivant:

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

Est-ce que le service paramètres de réception? –

+0

Ce code fonctionne avec un simple service Windows que j'ai. Quel est le problème? –

+0

System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller (ExeFilename, null); que nul représente quoi? parce qu'il dit quelque chose à propos d'une ligne de commande. J'ai besoin de cela pour travailler avec le chemin d'accès au fichier .exe du service –

Répondre

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(); 
      } 
     } 

Voilà comment je solveed il