Wix:安装期间忽略对话框中的属性更改 [英] Wix: Property change in dialog is ignored during installation

查看:17
本文介绍了Wix:安装期间忽略对话框中的属性更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个 Wix 文件中有一个属性,该文件公开用于在对话框中进行编辑.在下面的示例中,它是MyProperty".此属性用于创建注册表项.但是,如果在对话框中更改了属性,则不会使用更改后的值,但默认值为:SomeProperty".但是,如果我在另一个对话框中显示该属性,则该值将显示为用户输入的值.

I have a property in a Wix file that is exposed for editing in a dialog. In the sample below, it's "MyProperty". This property is used to create a registry key. However, if the property is changed in the dialog, the changed value isn't used, but the default one is: "SomeProperty". However, if I display the property on another dialog, the value is displayed as the value the user entered.

我做错了什么?

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="221ca977-6b1b-4737-a06a-14122f707173" Name="Name" Language="1033" Version="1.0.0.0" Manufacturer="Manu" UpgradeCode="29ad8ab9-e354-46fa-bafa-85cbea5ae526">
    <Package InstallerVersion="200" Compressed="yes" />
    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
    <Property Id="MyProperty" Value="SomeProperty" />
    <Directory Id="TARGETDIR" Name="SourceDir">
       <Component Id="RegistryEntries" Guid="8713D23C-1887-45C1-A90B-C8D0AAFFDA3D">
         <!-- This registry key is always "Software\SomeProperty" -->
          <RegistryKey Id="Test" Root="HKLM" Key="Software\[MyProperty]" Action="createAndRemoveOnUninstall"/>
       </Component>
    </Directory>
    <Feature Id="Feature1" Level="1" Title="Feature">
      <ComponentRef Id="RegistryEntries" />
    </Feature>
    <UI>
      <UIRef Id="WixUI_Common" />

      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />

      <DialogRef Id="DiskCostDlg" />
      <DialogRef Id="ErrorDlg" />
      <DialogRef Id="FatalError" />
      <DialogRef Id="FilesInUse" />
      <DialogRef Id="MsiRMFilesInUse" />
      <DialogRef Id="PrepareDlg" />
      <DialogRef Id="ProgressDlg" />
      <DialogRef Id="ResumeDlg" />
      <DialogRef Id="UserExit" />

      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PropertySettingDlg">1</Publish>

      <Publish Dialog="PropertySettingDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
      <Publish Dialog="PropertySettingDlg" Control="Next" Event="EndDialog" Value="Return">1</Publish>

      <Dialog Id="PropertySettingDlg" Width="370" Height="270" Title="PropertySettingDlg" TrackDiskSpace="yes">
        <Control Id="PropertyLabel" Type="Text" X="22" Y="52" Width="290" Height="13" Text="My Property" />
        <Control Id="Property" Type="Edit" X="22" Y="64" Width="150" Height="15" Property="MyProperty"  />
        <Control Id="Back" Type="PushButton" X="192" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
        <Control Id="Next" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
      </Dialog>
    </UI>
  </Product>
</Wix>

推荐答案

您的资产需要同时是 公共安全

Your property needs to be both Public and secure

<Property Id="MYPROPERTY" Value="SomeProperty" Secure="yes" />

这篇关于Wix:安装期间忽略对话框中的属性更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆