簡體   English   中英

使用 Wix 安裝結束時添加多個復選框

[英]Add more than one checkbox when install with Wix is over

我有我的 C# 應用程序的設置。 在設置結束時,我添加了一個建議啟動應用程序的復選框。 它運作良好。 但是我無法添加建議啟動可選安裝程序的第二個復選框。

有我的代碼:

<?xml version="1.0" encoding="UTF-8"?>
<?define compagny = "myCompagny"?>
<?define product = "myProduct"?>
<?define version = "!(bind.FileVersion.MyProject.exe)"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Product Id="*"
           Name="$(var.product)"
           Language="1033"
           Version="$(var.version)"
           Manufacturer="$(var.compagny)"
           UpgradeCode="PUT-GUID-HERE">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"/>
    <Icon Id="icone.ico" SourceFile="$(var.MyProject.ProjectDir)\Images\icone-VR.ico"/>
    <Property Id="ARPPRODUCTICON" Value="icon.ico"/>
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>
    <Media Id="1" Cabinet="MyProject.cab" EmbedCab="yes"/>

    <Feature Id="ProductFeature" Title="$(var.product)" Level="1">
      <ComponentGroupRef Id="ProductComponents"/>
      <ComponentRef Id ="ApplicationShortcut"/>
      <ComponentRef Id ="ApplicationShortcutDesk"/>
    </Feature>

    <WixVariable Id="WixUILicenseRtf"
                 Value="..\license.rtf"/>
    <WixVariable Id="WixUIBannerBmp"
                 Value=".\Resources\WixUIBannerBmp.bmp"/>
    <WixVariable Id="WixUIDialogBmp"
                 Value=".\Resources\WixUIDialogBmp.bmp"/>

    <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.product)" />
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Warning. If you don't have optionnal package, consider to install it."/>

    <Property Id="WixShellExecTarget" Value="[#MyProject.exe]" />
    <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />

    <UI>
      <UIRef Id="WixUI_Minimal"/>
      <Publish Dialog="ExitDialog"
               Control="Finish" 
               Event="DoAction" 
               Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
    </UI>
  </Product>

  [...]
 </Wix>

如何添加另一個 CheckBox 來啟動./Resources.myOptionalPackage.exe

如果我無法添加另一個復選框,是否可以添加一個用於安裝該功能的新對話框頁面?

您必須使用自定義對話框創建自己編輯的 UI。

1.首先去官方GIT倉庫復制WixUI_Minimal.wxsExitDialog.wxs文件,或者復制整個倉庫在本地找文件。 為您的項目/解決方案創建自己的此文件副本,並將它們重命名為WixUI_Custom.wxsMyExitDialog.wxs

也替換新文件的內容,用於WixUI_Minimal.wxs替換

<UI Id="WixUI_Minimal"><UI Id="WixUI_Custom">

ExitDialog.wxs替換

<Dialog Id="ExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title)"><Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">

和兩者

<Show Dialog="ExitDialog" OnExit="success" Overridable="yes" /><Show Dialog="MyExitDialog" OnExit="success" Overridable="yes" />

<UIRef Id="WixUI_Minimal"/>將產品中的<UIRef Id="WixUI_Custom"/><UIRef Id="WixUI_Custom"/>

3.現在你的安裝程序應該像以前一樣用精確的用戶界面打開,但來自你的類

4. WixUI_Custom並更改

<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999"><Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">

所以 UI 將打開我們的新對話框。

5. MyExitDialog.wxs並添加新的 Control 塊,因為它已經存在

<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]">
  <Condition Action="show">
    WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed
  </Condition>
</Control>

更改識別器Id到任何東西, XY在對話框中新的位置, Property為新的屬性,其中將復選框值存儲和Text的新特性,其中會顯示文本存儲。 也將 Text 屬性置於 Condition 中,因此顯示將取決於文本屬性集,如現有復選框中一樣。

<Control Id="SecondCheckBox" Type="CheckBox" X="135" Y="220" Width="220" Height="40" Hidden="yes" Property="WIXUI_SECONDCHECKBOXVALUE" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGSECONDCHECKBOXTEXT]">
  <Condition Action="show">
    WIXUI_EXITDIALOGSECONDCHECKBOXTEXT AND NOT Installed
  </Condition>
</Control>

6.現在您可以使用新的 Checkbox 執行與使用新控件中定義的新屬性相同的操作。

暫無
暫無

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

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