我的 Wix 项目包含 3 个文件:
1) Product.wsx - 主 wxs 文件
2) MyDlg.wxs - 我的带有复选框的自定义对话框
3) 1.txt - 任何文件
产品.wxs:
<Media Id="1" Cabinet="media.cab" EmbedCab="yes" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="My" />
</Directory>
</Directory>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="ProductComponent" Guid="{FC9CE1FD-9BF6-4746-9918-5B2DFA312A2B}">
<File Id="img" Source="$(sys.CURRENTDIR)1.txt" Name="1.txt" KeyPath="yes" Vital="yes" DiskId="1" />
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="My" Level="1" Absent="allow">
<ComponentRef Id="ProductComponent" />
<Condition Level="0">RECOGVERSION = 0</Condition>
</Feature>
<UI>
<UIRef Id="WixUI_Mondo" />
<UIRef Id="WixUI_ErrorProgressText"/>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="MyDlg" Order="10" >LicenseAccepted = "1"</Publish>
<Publish Dialog="MyDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" Order="10">NOT Installed</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MyDlg" Order="10">NOT Installed</Publish>
</UI>
MyDlg.wxs:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Property Id="RECOGVERSION" Value="0" Secure="yes" /><br/>
<Dialog Id="MyDlg" Width="370" Height="270" Title="My empty dialog">
<Control Id="RecognitionServerText" Type="Text" X="25" Y="53" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="Select version:" />
<Control Id="RecognitionServerRadioButtonGroup" Type="RadioButtonGroup" X="16" Y="70" Width="120" Height="73" Property="RECOGVERSION" >
<RadioButtonGroup Property="RECOGVERSION">
<RadioButton Height="15" Text="version 1 (old)" Value="0" Width="120" X="0" Y="0" />
<RadioButton Height="15" Text="version 2 (new)" Value="1" Width="120" X="0" Y="18" />
</RadioButtonGroup>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Publish Property="RECOGVERSION" Value="0">RECOGVERSION = "0"</Publish>
<Publish Property="RECOGVERSION" Value="1">RECOGVERSION = "1"</Publish>
<Publish Event="NewDialog" Value="CustomizeDlg" Order="10" />
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)">
<Publish Event="NewDialog" Value="LicenseAgreementDlg" Order="10" />
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
</UI>
</Fragment>
</Wix>
当我尝试单击自定义对话框中的“下一步”按钮时,什么也没有发生。我无法进入下一个对话框。
我尝试从 MyDlg.wxs 中删除这些行:
<Publish Property="RECOGVERSION" Value="0">RECOGVERSION = "0"</Publish>
<Publish Property="RECOGVERSION" Value="1">RECOGVERSION = "1"</Publish>
它有效但在新窗口中但“RECOGVERSION”属性的值没有更新。
问题是什么?