2017-03-10 3 views
0

Ich habe drei Hauptdienste in meinem Hauptprogramm erstellt. Ich habe auch drei System.Configuration.Install.Installer innerhalb meines Hauptprogramms gemacht. Was ich tun möchte, ist, wenn möglich, meine drei Dienste über mein Hauptprogramm zu installieren, ohne separate .exes für die Dienste zu haben. Ist das möglich? Was ich dachte, war etwas wie:Ausführen eines Service-Installers im Hauptprogramm

ServiceProjectInstaller installer = new ServiceProjectInstaller(); 
installer.Install(); //I don't know what to pass in a generic IDictionary that matches what the Install is looking for. 
ServiceBase[] ServicesToRun; 
ServicesToRun = new ServiceBase[] { new MainService() }; 
ServiceBase.Run(ServicesToRun); 

Würde dieser Ansatz funktionieren? Ich würde es vorziehen, so viel Komplexität wie möglich zu entfernen.

+0

Verwenden Sie ein Setup-Projekt (Visual Studio-Installationsprogramm?) Oder einfach ein Programm zum Installieren von Diensten schreiben? – PhilDW

+0

Es ist viel mehr als nur die Installation der Dienste und das Installationsprogramm wird mit InstallShield erstellt. –

Antwort

0

Ich fand diese Stack Overflow

Ich landete zwei Wörterbücher zu schaffen, sie beide zu IDictionary Wörterbuch = new Hashtable() zuzuweisen; Ich habe eine Methode erstellt, die die Installation in den Wörterbüchern aufruft. Der Service hat gut funktioniert.

public void Install() 
{ 
    try 
    { 
     serviceInstaller1.Install(Dictionary); 
     serviceProcessInstaller1.Install(ProcessDictionary); 
    } 
    catch 
    { 

    } 
} 
Verwandte Themen