사용자 구성이 레지스트리에 저장되는 이전 응용 프로그램을 유지 관리하고 있습니다. 제거 할 때 이 뒤에 남습니다. 지금 WiX에서 설치 프로그램을 다시 쓰려고합니다.레지스트리에 기본값이 설정되어 있지 않은 경우
설치자가 없으면 레지스트리에 기본값을 추가해야합니다. 그렇지 않으면 기존 값을 그대로 두어야합니다.
나는 WiX에서 이것을 수행하는 방법을 생각하고 있었다. 그리고 제가 생각해 낸 해결책은 다소 성가신 일입니다.
<Property Id="MY_PROPERTY">
<RegistrySearch Root="HKLM" Key="SOFTWARE\MyProduct" Name="MyProperty" Type="raw" />
</Property>
<CustomAction Id="ca.SetDefaultValue" Property="MY_PROPERTY" Value="DefaultValue" />
<InstallExecuteSequence>
<Custom After="RegistrySearch" Action="ca.SetDefaultValue">Not MY_PROPERTY</Custom>
</InstallExecuteSequence>
<Component Id="c.Registry">
<RegistryValue Root="HKLM" Key="SOFTWARE\MyProduct" Name="MyProperty" Type="string" Value="[MY_PROPERTY]" />
</Component>
따라서 레지스트리 값을 찾기 위해 레지스트리 검색을 수행하십시오. 설정되지 않은 경우 예약 된 사용자 정의 작업을 사용하여 기본값으로 설정하십시오. 그런 다음 "평소와 같이"값을 만듭니다.
더 원활하게 생각할 수있는 사람은 누구입니까?
Installed
과 같은 편리한 변수를 사용할 수는 없으므로 가치가있을 수 있으므로 이전에 제거 된 버전으로 남았습니다.
감사합니다. Yan, 감사합니다! –
어딘가에 "속성 우선 순위"예제 구현이 있습니까? 저는 지금 OP와 똑같은 것을 고민하고 있습니다. 당신이 제안한 것을 정확히 구현하기를 희망합니다. –