WiX: Publish Event problem
От: serXXIo  
Дата: 19.05.11 10:32
Оценка:
Есть VerifyReadyDialog, на нем кнопка Install. При нажатии на ней должно райзится два ивента — закрытие текущего диалога и порождение чайлдового. Все это выглядит так:


<Control Id="Install" Type="PushButton"  
                 X="$(var.NextX)"
                 Y="$(var.NextY)" 
                 Width="$(var.NextWidth)"
                 Height="$(var.NextHeight)" 
                 Text="$(loc.VerifyReadyDlgInstall)">
          <Publish Event="SpawnDialog" Value="UpgradeDlg">1</Publish>
          <Publish Event="ExitDialog" Value="Return">1</Publish>
</Control>





Код UpgradeDlg:


 <Fragment>
      <UI>
      <Dialog Id="UpgradeDlg"
              Width="260"
              Height="85"
              Title="$(loc.CancelDlg_Title)" 
              NoMinimize="yes" >
        <Control Id="No"
                 Type="PushButton"
                 X="132"
                 Y="57"
                 Width="56"
                 Height="17"
                 Cancel="yes"
                 Text="$(loc.WixUINo)">
          <Publish Event="EndDialog" Value="Exit">1</Publish>
        </Control>
        <Control Id="Yes"
                 Type="PushButton"
                 X="72"
                 Y="57"
                 Width="56"
                 Height="17"
                 Text="$(loc.WixUIYes)"
                 Default="yes" Cancel="yes">
          <Publish Event="EndDialog" Value="Return">1</Publish>
          <Publish Event="DoAction" Value="LaunchUpgrade">NOT Installed</Publish>
        </Control>
        <Control Id="Text"
                 Type="Text"
                 X="48"
                 Y="15"
                 Width="194"
                 Height="30"
                 Text="Do you wanna?" />
        <Control Id="Icon"
                 Type="Icon"
                 X="15"
                 Y="15"
                 Width="24"
                 Height="24"
                 ToolTip="$(loc.CancelDlgIconTooltip)"
                 FixedSize="yes"
                 IconSize="32"
                 Text="$(loc.CancelDlgIcon)" />
      </Dialog>
      </UI>

    <CustomAction Id="LaunchUpgrade" Directory="INSTALLDIR"  ExeCommand="C:\test.exe" Return="asyncNoWait"/>
  </Fragment>



Соответственно проблема: при нажатии Install райзится только ивент, идущий последний в списке.
Кто — нибудь сталкивался с подобным?

p.s Wix 2.0
wix
Re: WiX: Publish Event problem
От: okman Беларусь https://searchinform.ru/
Дата: 19.05.11 11:20
Оценка:
Здравствуйте, serXXIo.

Нужно задействовать атрибут Order.
Он отвечает за порядок выполнения событий.

<Control Id="ShowPopupButton"
Type="PushButton"
Text="Show Popup"
Height="17"
Width="56"
X="245"
Y="243"
Default="yes">

<Publish Event="DoAction"
Value="MyCustomAction
Order="1">1</Publish>

<Publish Event="SpawnDialog"
Value="PopupDlg"
Order="2">1</Publish>

</Control>
Re[2]: WiX: Publish Event problem
От: serXXIo  
Дата: 19.05.11 12:18
Оценка:
Здравствуйте, okman, спасибо за Ваш ответ.

К сожалению, этот атрибут доступен в тэге Publish только начина с версии WiX 3.0, которую на данный момент я не могу использовать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.