WiX를 사용하여 Windows 서비스를 설치하고 시작하는 방법
Wix에서 아래 코드를 사용해 보았습니다.
하지만 설치할 때 설치 프로그램이 서비스 시작 중 상태에서 3 분 정도 멈췄습니다. 그런 다음 "서비스 작업 서비스를 시작하지 못했습니다. 시스템 서비스를 시작할 수있는 충분한 권한이 있는지 확인하십시오"라는 메시지가 나타납니다. 내 코드에 문제가 있습니까? 그리고 사용자에게 "권한"을 얻기 위해 설치 중에 Windows 시스템 사용자 이름과 암호를 입력하도록 요청할 수 있습니까?
감사합니다!
<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1'
Source='JobService.exe' Vital='yes' KeyPath='yes'/>
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
Name="JobService" DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs" Start="auto"
Account="LocalSystem" ErrorControl="ignore" Interactive="no" />
<ServiceControl Id="StartService" Stop="both" Remove="uninstall"
Name="JobService" Wait="yes" />
</Component>
다음 코드는 나를 위해 작동합니다 ... 사용자 이름 / 암호를 요구할 필요가 없습니다. :)
<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe' KeyPath='yes'/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="JobService"
DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
/>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>
이 페이지의 솔루션이 서비스를 올바르게 설치하지만 ServiceControl 요소가 서비스를 시작하지 않음을 발견했습니다.
wix 설치 서비스와 수동 설치 서비스 ( "JobService.exe / install")를 비교하면 "실행 경로"필드에 시작 스위치가 없습니다. Wix에서 ServiceInstall의 인수 속성으로이 문제를 수정했습니다.
<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe' KeyPath='yes'/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="JobService"
DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
Arguments=" /start JobService"
/>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>
오랫동안 잠복 자, 이것은 여기에 대한 첫 번째 게시물입니다. 누군가에게 도움이되기를 바랍니다.
WiX 버전 3.x 사용자를위한 업데이트입니다. 다음 코드는 로컬 계정으로 서비스를 설치하고 시작합니다. ServiceInstall 태그의 Arguments 속성을 확인합니다.
<File Source="$(var.MyService.TargetPath)" />
<ServiceInstall Id="ServiceInstaller" Name="MyService" Type="ownProcess" Vital="yes" DisplayName="My Service" Description="My Service Description" Start="auto" Account="LocalSystem" ErrorControl="normal" Arguments=" /start MyService" Interactive="no" />
<ServiceControl Id="StartService" Name="MyService" Stop="both" Start="install" Remove="uninstall" Wait="yes" />
나를 위해 적어도 한 번은 도움이되었으며 설치 및 제거 서비스를 모두 제거했습니다.
<ServiceControl Remove="both" />
나는 이것이 Regedit에서 무언가를 제거했다고 가정합니다.
참고 URL : https://stackoverflow.com/questions/1942039/how-to-install-and-start-a-windows-service-using-wix
'development' 카테고리의 다른 글
CSS에서 RGB 색상 값에 십진수보다 16 진수를 사용하는 데 좋은 이유가 있습니까? (0) | 2020.12.12 |
---|---|
djb2 알고리즘에서 5381과 33이 왜 그렇게 중요한가요? (0) | 2020.12.12 |
SetupSet ()는 더 이상 사용되지 않습니다. (0) | 2020.12.12 |
지정된 케이스를 처리 할 수없는 경우 switch 문에서 예외 발생 (0) | 2020.12.12 |
PID와 TID의 차이점 (0) | 2020.12.12 |