WIX : 제거에서 Windows 서비스 중지
-
05-07-2019 - |
문제
서비스를 제거하면 서비스를 제거하기 전에 그러한 서비스와 그러한 서비스를 중지 해야하는 오류가 발생합니다. 이것은 불만족 스럽습니다. 설치되지 않은 상태는 자동으로 중지해야합니다.
나는 이번 달 전에 블로그 나 뉴스 그룹 게시를 발견하고 제대로 작동하게했지만 이제는 일을 중단했습니다. 그리고 나는 게시물에 대한 링크가 없습니다 ... 다른 사람이 그것이 어디에 있는지 알고 있습니까? :) 나는 미묘한 것을 바꾸고 작동을 멈췄을 것 같아요. Wix는 문제 해결하기가 매우 어렵다는 것을 알게되었습니다.
X_ WIN_ SERVICE_ 이름을 가져 오기 위해 다음과 같은 포함을 사용하고 있습니다 (미안합니다. 이 경우 입력 파일로 명시 적으로 설정했기 때문에 설치에 중요하지 않습니다. 여기에는 내 WXS 파일의 구성 요소 전에 사용됩니다.
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?ifndef SetupXWinServiceRegistryProperties ?>
<?define SetupXWinServiceRegistryProperties ?>
<?define XWinServiceRegistryKey='Software\X\Y'?>
<Property Id="X_WIN_SERVICE_NAME">
<RegistrySearch Id="XWinServiceNameSearch"
Root="HKLM"
Key="$(var.XWinServiceRegistryKey)"
Name="ServiceName"
Type="raw"/>
</Property>
<?endif?>
</Include>
다음 포함 구성 요소는 설치시 레지스트리 값을 저장하는 데 사용됩니다.
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?ifndef WriteXWinServiceRegistryProperties ?>
<?define WriteXWinServiceRegistryProperties ?>
<Component Id="CompWriteXWinServiceRegistryProps"
Guid="some guid">
<!-- Write properties to the registry. Then they will be
accessable during uninstall. -->
<RegistryValue Root="HKLM"
Key="$(var.XWinServiceRegistryKey)"
Name="ServiceName"
Type="string"
Value="[X_WIN_SERVICE_NAME]"
Action="write" />
</Component>
<?endif?>
</Include>
설치 후 시스템을 확인했으며 레지스트리 값이 올바르게 작성되었습니다. 서비스가 설정된 내 구성 요소의 부품은 다음과 같습니다.
<ServiceInstall Id="ServiceInstallXWinService"
Name="[X_WIN_SERVICE_NAME]"
Start="auto"
DisplayName="xxx"
Description="yyy"
Account="[X_WIN_SERVICE_USER]"
Password="[X_WIN_SERVICE_PASSWORD]"
Type="ownProcess"
ErrorControl="normal"
Vital="yes" />
<ServiceControl Id="ServiceInstallXWinService"
Name="[X_WIN_SERVICE_NAME]"
Stop="both"
Remove="uninstall"
Wait="yes" />
어떤 아이디어?
해결책
X_WIN_SERVICE_NAME 속성이 제거되지 않은 경우 올바른 값으로 설정되어 있다고 확신합니까? 장점 로그 파일을 사용하여 검색이 값을 올바르게 설정하고 있는지 확인하십시오. 모든 것이 잘 보입니다 (나는 단편을 사용하는 대신 파일을 포함하는 이유를 모르겠지만).
제휴하지 않습니다 StackOverflow