2009-07-01 3 views
13

목적 :Windows 서비스 이름을 지정

  1. 사용자 입력을 수신 : 단일 시스템에서 여러 인스턴스가있을 수 있습니다 Windows 서비스의 지원에서의 MSI 수를 생성하기 위해 설치 프로젝트를 사용 1에서 서비스 이름
  2. 설치 서비스
  3. 직렬화 서비스 이름은 내 초기 희망이 서비스를 설정하는 것이 었습니다

(수 있도록 적절한 이름은 로깅 및 제거에 사용할 수 있습니다) App.config에서 이름을 지정하고 ServiceInstaller의 인스턴스 생성시 제거 중에 검색하십시오. 이것은 설치하는 동안 액세스 할 수 없기 때문에 순진 해 보입니다.

MyInstaller가 Installer를 확장하면 base.Install();을 호출 할 수 있습니다. 그러나 My.staller.Install() 및 base.Install() 내 app.config에 대한 내 시도는 유효하지 않습니다.

서비스가 사용자 정의 서비스 이름으로 설치 될 수 있지만 그 이름은 직렬화되지 않으며 설치 프로그램은 설치 제거시 가장 불쾌합니다.

어떻게해야합니까?

답변

9

설치 관리자 작업에 매개 변수를 지정할 수 있으므로 서비스 이름을 수집하고 매개 변수로 작업에 전달할 수 있습니다. 그런 다음 Installer 클래스에서 Install()을 무시하고 base.Context.Parameters을 통해 액세스 할 수 있습니다. 그것이 당신이 가치를 얻는 방법입니다. 이 값을 얻은 다음 사용하면 stateSaverIDictionary 매개 변수에 넣으므로 Uninstall()을 무시하면 설치시 사용 된 값을 알 수 있습니다.

+0

일반 사이트에 숨겨져 있습니다! 네일 고마워. –

+2

예제 코드를 제공 할 수 있습니까? –

+2

두 번째 루카스! :-) – Junto