加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 04:06:06 所属栏目:Windows 来源:网络整理
导读:目前我已经定制了Wix_InstallDirDlg以使用户能够在安装时设置注册表项.在InstallDirDlg和MaintenanceTypeDlg之后会显示一个自定义对话框,以便它适合安装和修复方案. 自定义对话框具有链接到属性的单个文本框.此属性具有注册表搜索,以便在用户修复或升级时保
目前我已经定制了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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读