2012-04-26 2 views
1
проект

My Wix содержит 3 файла:Wix: Нанести недвижимость издательство

1) Product.wsx - основные WXS файл

2) MyDlg.wxs - мой собственный диалог с флажками

3) 1.txt - любой файл

Product.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».

В чем проблема?

+0

Запустите MSI, как это: Msiexec/я myprod.msi/л * V install.log WXS выглядит правильно для меня. – MariusCC

+0

Есть извлечение из журнала: http://pastebin.com/5BWU3rt9 – NieAR

ответ

4

Решение

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)"> 
    <Publish Event="NewDialog" Value="CustomizeDlg" Order="10">1</Publish> 
    <Publish Property="RECOGVERSION" Value="[RECOGVERSION]" Order="11">1</Publish> 
</Control> 
0

Взгляните на таблицу ControlEvent вашего MSI, используя ORCA. Я предполагаю, что, поскольку вы не указали атрибут Order, что ваш ордер ошибочен, а NewDialog [NEXTDIALOG] обрабатывается до того, как вы сможете запустить расширенный ControlEvents.