修复时,Wix安装程序会清除注册表设置

前端之家收集整理的这篇文章主要介绍了修复时,Wix安装程序会清除注册表设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我已经定制了Wix_InstallDirDlg以使用户能够在安装时设置注册表项.在InstallDirDlg和MaintenanceTypeDlg之后会显示一个自定义对话框,以便它适合安装和修复方案.

自定义对话框具有链接属性的单个文本框.此属性具有注册搜索,以便在用户修复或升级时保留先前的值,并因此显示自定义对话框中以供用户验证.该对话框在安装时工作正常,并创建了注册表项.但是,在修复时,将显示自定义对话框,并输入正确的注册表值(因此RegistrySearch正在运行),但修复完成后,键值为空.

<Property Id='SERVER_LISTEN_URL'>
          <RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM'
                          Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
                          Name='ServerListenUrl'
                          Type='raw' Win64='no' />
        </Property>

<Component Id="RegistryEntries" Guid="0234974B-6158-4312-90A7-56869809B42E">
        <RegistryKey Id="ServerRegKey"
              Root="HKLM"
              Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
              Action='createAndRemoveOnUninstall'>
          <RegistryValue Id="ServerListenUrlRegVal"
                         Name='ServerListenUrl'
                         Value='[SERVER_LISTEN_URL]'
                         KeyPath='yes'
                         Type='string' />
        </RegistryKey>
</Component>

<Dialog Id="SettingsDlg">
    <Control Id="ListenUrl" Type="Edit" X="20" Y="100" Width="320" Height="18" Property="SERVER_LISTEN_URL" Indirect="no" />
</Dialog>

我做错了什么?

我发布后,我设法自己解决了这个问题.我花了一天时间试图解决这个问题,所以希望这会节省一些痛苦.您需要做的就是将属性更改为安全属性.
<Property Id='SERVER_LISTEN_URL' Secure='yes'>
      <RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM'
                      Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
                      Name='ServerListenUrl'
                      Type='raw' Win64='no' />
</Property>
原文链接:https://www.f2er.com/windows/365159.html

猜你在找的Windows相关文章