У меня есть установщик, созданный с помощью Wix.В мастере пользовательского интерфейса есть флажок, который по умолчанию установлен на.Я хочу сохранить значение этого флажка в реестре для изменений, исправлений и обновлений, используя (более простую версию) шаблон «Помнить свойство» , описанный Робом Меншингом.
Флажокреализация:
<Control Id="httpsCheckBox" Type="CheckBox" CheckBoxValue="true" X="30" Y="119" Width="139" Height="17" Text="Enable HTTPS services" Property="ENABLEHTTPS" />
Определение свойства:
<Property Id="ENABLEHTTPS" value="true">
<RegistrySearch Id="EnableHttpsRegistrySearch" Type="raw" Root="HKLM" Key="SOFTWARE\CompanyName\ProductName" Name="EnableHttps" />
</Property>
И свойство записывается в реестр здесь:
<Component Id="RegistryEntries">
<RegistryKey Root="HKLM" Key="SOFTWARE\CompanyName\ProductName">
<RegistryValue Name="EnableHttps" Value="[ENABLEHTTPS]" Type="string" />
</RegistryKey>
</Component>
Первоначальная установка работает нормально.Значение в реестре равно «true», если флажок оставлен отмеченным или пустым, если он не отмечен.
При следующем запуске программы установки, например, для установки новой функции, флажок всегда устанавливается независимо от того,значение в параметре реестра.
Если я удаляю значение по умолчанию из определения свойства, чтобы флажок был снят при первом запуске программы установки, все работает нормально.При следующем запуске программы установки флажок (и свойство) получат правильное значение из реестра.
Это похоже на то, что RegistrySearch не устанавливает свойство, если значение реестра пустое.
AmЯ что то не так делаю?Или есть лучший способ сделать это?