2010-04-12 9 views
15

Ich habe eine Reihe von Windows-Diensten mit verwaltetem Code, für die wir das Tool Frameworks InstallUtil verwenden, um es in den Dienststeuerungs-Manager zu installieren. Dieses Tool erstellt bei der Installation eine neue Datei mit der Erweiterung .InstallState. Ich habe experimentiert mit dem Löschen dieser Datei und eine Deinstallation funktioniert nach wie vor gut.. Net Windows Services und InstallState-Datei - ist es wirklich erforderlich?

Also meine Fragen ist, wofür ist diese Datei und gibt es einen Grund, ich sollte es nicht löschen?

Bearbeiten 5/3/10: Wirklich? Niemand hat eine Ahnung, was der Wert dieser Datei ist?

Antwort

2

Die Datei sollte durch den Deinstallationsvorgang gelöscht werden. Wenn Sie eine benutzerdefinierte Installationsaktion verwenden, sollten Sie auch den Deinstallationsvorgang hinzufügen. Eine fehlende .installstate-Datei verhindert nicht, dass der Dienst deinstalliert wird.

http://adamhouldsworth.blogspot.com/2009/11/c-setup-installstate.html

http://support.microsoft.com/kb/934388

+0

Ich schätze die Referenzen hipplar, aber ich bin wirklich auf der Suche nach Informationen darüber, was diese Datei tut und ob es wirklich benötigt wird. Es scheint wenig Informationen über die Interwebs zu geben. – BrettRobi

2

Die Install Datei wird von InstallUtil.exe zur Deinstallation der Service/Montage verwendet. Die darin enthaltenen Daten sind nur Deinstallationsdaten. Wenn Sie die kurze obskure Referenz in MSDN nicht gelesen haben, können Sie sie here lesen.

Vielleicht deinstalliert ein Setup-Paket alles für Sie korrekt, aber ich bin mir nicht sicher, ob ein Service ordnungsgemäß deinstalliert werden würde, wenn Sie InstallUtil manuell/Skript selbst aufrufen würden.

Das ist der angenommene Wert einer .InstallState-Datei.

+0

Das ist, was ich zunächst dachte, aber die Realität ist, dass ich einen Dienst mit InstallUtil auch dann deinstallieren kann, wenn ich die InstallState-Datei gelöscht habe. Das ist es, was mich verwirrt, warum es benötigt wird. – BrettRobi

+0

Anscheinend wird es nicht benötigt :) – jlafay

6

In VS.NET können Sie einen benutzerdefinierten Dialog für Ihr MSI-Projekt definieren, ich benutze einen solchen Dialog, um die SQL Server-Adresse und Anmeldeinformationen zu fragen, die MSI speichert alle Informationen aus den Textfeldern in InstallState-Datei. Wenn der Dienst deinstalliert wird, liest er die Werte aus der InstallState-Datei und löscht die in der Installationsphase erstellte Datenbank. In meinem Fall ist InstallState-Datei ein Muss, da die Deinstallation fehlschlägt, wenn die Datei nach der Installation gelöscht wurde.

+1

"Wenn der Dienst deinstalliert wird, liest er die Werte aus InstallState-Datei und wird die in der Installationsphase erstellte Datenbank löschen" Gute Antwort von Stefan. Punkt ist ... bei der Deinstallation ist es sehr wahrscheinlich, dass Sie Ihre Installationszeit benutzerdefinierte Informationen wie Servername, Datenbankname usw. benötigen. Wenn Sie diese Datei löschen, wo würden Sie Ihre Informationen dann erhalten? Es ist also besser, diese Datei dort zu belassen. –

Verwandte Themen