У меня есть свойство в файле Wix, который выставляется для редактирования в диалоговом окне. В образце ниже, это - "MyProperty". Это свойство используется для создания ключа реестра. Однако, если свойство изменяется в диалоговом окне, измененное значение не используется, но значение по умолчанию, которое каждый: "SomeProperty". Однако, если я отображаю свойство на другом диалоговом окне, значение отображено как значение вводимый пользователь.
Что я делаю неправильно?
<?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>
Ваша собственность должна быть общедоступной и защищенной
<Property Id="MYPROPERTY" Value="SomeProperty" Secure="yes" />
Я считаю, что вам нужно использовать свойство общедоступного установщика Windows . Все общедоступные свойства вводятся заглавными буквами, например [ИМУЩЕСТВО]
.