2009-07-01 12 views
13

Cel: Na poparcie usługa systemu Windows, które mogą mieć wiele wystąpień na jednym komputerze, korzystać z projektu instalacji do tworzenia MSI stanie:Określ systemu Windows Nazwa usługi na zainstalować z instalacyjnego Projektu

  1. Odbieranie danych wprowadzanych przez użytkownika dla Service name
  2. zainstalowaniu dodatku Service
  3. szeregowania Nazwa usługi od 1 (tak, że prawidłowa nazwa może być używana w rejestrowania i deinstalacji)

Moja początkowa nadzieją było ustawić usługę Nazwa w App.config (a następnie pobierz ją podczas deinstalacji po utworzeniu ServiceInstaller. To wydaje się być naiwne, ponieważ nie jest dostępne podczas instalacji.

Jeśli MyInstaller rozszerzy Instalatora, może wywołać funkcję base.Install(); jednak moje próby zapisu do app.config (w MyInstaller.Install() i po base.Install()) są mało efektywne.

Podczas gdy usługa może być instalowana z niestandardową nazwą usługi, nazwa ta nie jest serializowana, a instalator jest najbardziej niezadowolony po odinstalowaniu.

Jak należy to zrobić?

Odpowiedz

9

Można określić parametry działań instalatora, więc należy pobrać nazwę usługi i przekazać ją jako parametr akcji. Następnie w klasie Installer można zastąpić Install() i uzyskać do niego dostęp za pośrednictwem base.Context.Parameters. W ten sposób otrzymujesz wartość. Po uzyskaniu tej wartości i zastosowaniu jej, umieściliśmy ją w parametrze stateSaverIDictionary, tak aby po przesłonięciu Uninstall() można było ustalić, jaka wartość została użyta podczas instalacji.

+0

ukryte w zwykłej witrynie! dzięki Neil. –

+2

czy możesz podać przykładowy kod? –

+2

Ja drugi Lucas! :-) – Junto

Powiązane problemy