Installer: Dienst stoppen vor Installation-Update

11/08/2009 - 07:11 von Klaus P. Pieper | Report spam
Hallo,

in einem Standard-Setup (VS 2008 Setup Projekt) wird ein Windows-Dienst
installiert (ganz normal mit der ServiceInstaller Klasse).

Für ein Update wird im Installer Projekt RemovePreviousVersion = True
gesetzt, die Version erhöht und der productCode geàndert. Funktioniert
auch alles wie es soll - sofern der Dienst vorher von Hand gestoppt wird.

Wie kann man das im Installer automatisch machen? Die Custom Actions
werden so weit ich sehen kann erst nach der Installation aufgerufen - da
ist es aber zu spàt.

Gruß

Klaus

reply pub . pieper ibeq
to kp3 . at . com
 

Lesen sie die antworten

#1 Frank Dzaebel
11/08/2009 - 08:09 | Warnen spam
Hallo Klaus,

Für ein Update wird im Installer Projekt RemovePreviousVersion = True
gesetzt, die Version erhöht und der productCode geàndert. Funktioniert
auch alles wie es soll - sofern der Dienst vorher von Hand gestoppt
wird. Wie kann man das im Installer automatisch machen? Die Custom Actions
werden so weit ich sehen kann erst nach der Installation aufgerufen -
da ist es aber zu spàt.



Nein, die CAs werden "bei" der Installation aufgerufen.
Das Stoppen "kann" ggf. so implementiert werden:

// using System.ServiceProcess;
ServiceController sc = new ServiceController();
sc.ServiceName = "DeinServiceName";
Console.WriteLine(
"Der " + sc.DisplayName + "-Status ist: {0}",
sc.Status.ToString());

if (sc.Status == ServiceControllerStatus.Stopped)
{
Console.WriteLine("Starte den " + sc.DisplayName + " ...");
try
{
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);
Console.WriteLine("Der Status des Dienstes: " +
sc.DisplayName + " ist jetzt: {0}.", sc.Status.ToString());
}
catch (Exception exp)
{
Console.WriteLine("Der Dienst " + sc.DisplayName +
"konnte nicht gestartet werden:" + exp.Message);
}
}

Ansonsten:

[Windows Service Installer problem]
http://social.msdn.microsoft.com/fo...68eafb523/

[InstallSite: Windows Installer Tools and Tips]
http://www.installsite.org/pages/en/msi/tips.htm

[CodeProject: Install Windows Service using Custom Action]
http://www.codeproject.com/KB/insta...rvice.aspx

[Visual Studio 2008 Service Installer Project Upgrade issue - Stack
Overflow]
http://stackoverflow.com/questions/...rade-issue


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen