簡體   English   中英

避免使用WiX安裝程序中的條件繼續進行下一個對話框

[英]Avoid proceeding to the next dialog with a condition in a WiX installer

有沒有人知道在滿足某個條件時是否可以阻止基於WiX的MSI安裝程序進入下一個對話框? 我有以下代碼:

<Dialog Id="SelectIISApplicationPoolUserDialog" Width="370" Height="270" Title="$(var.ApplicationPoolUserDialogTitle)">
  <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
    <Publish Property="APPLICATIONPOOLUSER" Value="{}">WEBSITE_APPLICATIONPOOLUSERTYPE = "local"</Publish>
    <Publish Property="APPLICATIONPOOLUSER" Value="1">WEBSITE_APPLICATIONPOOLUSERTYPE = "domain"</Publish>
    <Publish Event="DoAction" Value="CheckPortNumber">1</Publish>
  </Control>

CheckPortNumber指的是:

<Binary Id="IISCA" SourceFile="binaries/MyCustomActions.IIS.CA.dll" />
<CustomAction Id="CheckPortNumber" 
              BinaryKey="IISCA" 
              DllEntry="IsFreePort" 
              Execute="immediate" />

此外,在其他地方,我們有這個聲明:

<Publish Dialog="SelectIISApplicationPoolUserDialog" 
         Control="Next" 
         Event="NewDialog" 
         Value="SetSqlServerConnectionDialog">ISPORTFREE</Publish>

當我運行安裝程序並進入對話框以選擇應用程序池用戶時,我單擊下一步。 然后,自定義操作將檢查端口號並設置ISPORTFREE變量。 但是,無論ISPORTFREE的結果如何,都不會顯示下一個對話框。 但是當我第二次單擊“下一步”時,將顯示下一個對話框。

所以我想要的是:當我點擊下一步並且正在使用輸入的端口號時,我收到警告並且不進入下一個對話框。 如果未使用,我將繼續下一個對話框。

您需要設置Publish/@Order以便按正確的順序評估所有內容。

像下面這樣的東西應該可以工作:

<Publish Dialog="MyDlg" Control="Next" Event="DoAction" 
         Value="SomeAction" Order="1">1</Publish>
<Publish Dialog="MyDlg" Control="Next" Event="SpawnDialog" 
         Value="MyWarningDlg" Order="2">Not CONDITION</Publish>
<Publish Dialog="MyDlg" Control="Next" Event="NewDialog" 
         Value="MyOtherDlg" Order="3">CONDITION</Publish>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM