2010-04-12 19 views
15

Mam kilka zarządzanych kodów usług Windows, dla których używamy narzędzia Frameworks InstallUtil do zainstalowania w menedżerze kontroli usług. To narzędzie tworzy nowy plik w czasie instalacji z rozszerzeniem .InstallState. Eksperymentowałem z usunięciem tego pliku, a odinstalowanie nadal działa dobrze..Net Usługi Windows i plik InstallState - czy naprawdę jest potrzebny?

Moje pytanie brzmi: do czego służy ten plik i czy istnieje jakikolwiek powód, dla którego nie powinienem go usunąć?

Edytować 5/3/10: Naprawdę? Nikt nie ma pojęcia, jaka jest wartość tego pliku?

Odpowiedz

2

Plik powinien zostać usunięty przez proces odinstalowywania. Jeśli używasz niestandardowej akcji instalacji, powinieneś dodać także proces odinstalowywania. Brakujący plik .installstate nie uniemożliwi odinstalowania usługi.

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

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

+0

Doceniam hipnotyzujące odniesienia, ale naprawdę szukam informacji o tym, co ten plik robi i czy jest naprawdę potrzebny. Wygląda na to, że niewiele jest informacji na temat interwebs. – BrettRobi

2

Plik InstallState jest używany przez InstallUtil.exe odinstalowania usług/montaż. Dane w nim zawarte są tylko danymi dezinstalacyjnymi. Jeśli nie przeczytałeś krótkiego, niejasnego odniesienia na MSDN, możesz go przeczytać: here.

Może pakiet instalacyjny poprawnie odinstalowuje wszystko, ale nie jestem pewien, czy dana usługa byłaby poprawnie odinstalowana, gdybyś samodzielnie wywołał InstallUtil ręcznie/skryptem.

To jest przypuszczalna wartość pliku .InstallState.

+0

Tak właśnie początkowo sądziłem, ale w rzeczywistości mogę odinstalować usługę przy użyciu InstallUtil, nawet jeśli usunięto plik InstallState. To mnie zastanawia, dlaczego jest potrzebna. – BrettRobi

+0

Wygląda na to, że nie jest potrzebny :) – jlafay

6

W VS.NET można zdefiniować niestandardowe okno dialogowe dla projektu msi, używam takiego okna dialogowego, aby poprosić o adres i dane logowania serwera SQL, msi przechowuje wszystkie informacje z pól tekstowych do pliku InstallState. Gdy usługa zostanie odinstalowana, odczyta wartości z pliku InstallState i usunie bazę danych utworzoną w fazie instalacji. W moim przypadku plik InstallState jest koniecznością, ponieważ deinstalacja zakończy się niepowodzeniem, jeśli plik został usunięty po instalacji.

+1

"Po odinstalowaniu usługi odczyta wartości z pliku InstallState i usunie bazę danych utworzoną w fazie instalacji" Dobra odpowiedź Stefana. Punkt jest ... po odinstalowaniu jest bardzo prawdopodobne, że będziesz potrzebował niestandardowych informacji o czasie instalacji, takich jak nazwa serwera, nazwa bazy danych itp. Jeśli usuniesz ten plik, skąd masz otrzymać te informacje? Więc lepiej zostawić tam ten plik. –

Powiązane problemy