2017-12-04 13 views
0

WiX를 사용하여 사전 설치된 서비스의 시작 유형을 Automatic으로 설정하려고합니다. 또 다른 작업은 설치시 서비스를 시작하는 것이 었습니다. 그 서비스는 다음과 같이 구현했습니다.서비스 설정 WiX 설치 프로그램의 시작 유형

<ServiceControl 
    Id="ServiceRunningState" 
    Name="[Service Name]" 
    Start="install" 
    Stop="install" 
    Wait="yes" /> 

이제 시작 유형도 설정하고 싶습니다. 나는 (answer 참조) 다음을 시도 :

<ServiceConfig 
    Id="ServiceStartup" 
    ServiceName="[Service Name]" 
    DelayedAutoStart="yes" 
    OnInstall="yes" 
    OnReinstall="yes" /> 

그러나 이것은 (Manual 시작 유형에서 테스트) 서비스의 시작 유형을 변경하지 않았다. 게다가 시작 유형을 Automatic이 아니라 Automatic (Delayed Start)으로 바꾸고 싶습니다.

기존 서비스을 수정하려고하는데, 따라서 ServiceInstall 요소가 없습니다.

두 요소 (ServiceControlServiceConfig)는 Component 상위 요소의 하위 요소입니다.

어떤 도움에 감사드립니다 :)

답변

0

예를 참조하십시오

<RegistryKey Root="HKLM" 
      Key="SYSTEM\CurrentControlSet\Services\[Service Name]" 
      Action="create"> 
    <RegistryValue Type="integer" Name="Start" Value="2" /> 
    <RegistryValue Type="integer" Name="DelayedAutostart" Value="0" /> 
</RegistryKey> 

참고 서비스가 서비스 GUI에서 Automatic (Delayed Start)로 나타날 수 있습니다. 그러나 다시 시작한 후 Services GUI에 서비스 시작 유형이 Automatic으로 표시되었습니다.

0

는 "DelayedAutoStart"매개 변수를 "아니오"보다는 "예"를 설정합니다.

1

MSI는 패키지가 설치하지 않는 서비스의 시작 유형을 변경하는 것을 지원하지 않습니다. ServiceConfigdoesn't let you get around that :

만 ServiceInstall 테이블의 StartType 필드에 SERVICE_AUTO_START이 패키지에 의해 설치 설치 자동 시작 서비스 또는 서비스에 적용됩니다. RegistryKey를 통해 레지스트리를 편집하여 해결

+0

나는 많이 생각했다. 왜 그들은 기능이 작동하지 않으면'ServiceInstall' 엘리먼트 밖에있는'ServiceConfig'에 액세스 할 수있게 해주지 만 비생산적인 것처럼 보입니다. 질문은 명시 적으로'ServiceConfig' 솔루션을 요구하지는 않지만, 나는 정보를 감사한다. :) – ChickenFeet