web-dev-qa-db-ja.com

ライセンスページなしで最小限のWiXインストーラーUIを構築する方法

WixUI_Minimalインストーラーを使用したいのですが、ライセンスページは必要ありません。これどうやってするの?

69
Adam Tegen

重要なのは、カスタムUIを作成し、さまざまなページを接続することです。 WixWiki のページをご覧ください

WixUIの最小限のコード を取得して、少し変更します。 WelcomeEulaDlgのようこそダイアログの代わりに、WelcomeDlgを使用します。参照を調整し、WelcomeDlgの[次へ]ボタンをスタック内の次のダイアログ(PrepareDlg)に接続します。

完全なコード:

  <UI Id="WixUI_Minimal">
    <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
    <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
    <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />

    <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
    <Property Id="WixUI_Mode" Value="Minimal" />

    <DialogRef Id="ErrorDlg" />
    <DialogRef Id="FatalError" />
    <DialogRef Id="FilesInUse" />
    <DialogRef Id="MsiRMFilesInUse" />
    <DialogRef Id="PrepareDlg" />
    <DialogRef Id="ProgressDlg" />
    <DialogRef Id="ResumeDlg" />
    <DialogRef Id="UserExit" />

    <!-- This is the welcome dialog you specified-->
    <DialogRef Id="WelcomeDlg" /> 

    <!-- Hook the new welcome dialog to the next one in the stack-->
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish> 

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

    <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>

    <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>

    <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
    <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
    <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>

    <Property Id="ARPNOMODIFY" Value="1" />
  </UI>

  <UIRef Id="WixUI_Common" />
52
Adam Tegen

作成済みのWiX UIのいずれかを使用して、シーケンスをオーバーライドします(前の設定をオーバーライドするように高くします)。

    <Product> 
        ...
        <UI>
            <UIRef Id="WixUI_InstallDir" />

            <!-- Skip license dialog -->
            <Publish Dialog="WelcomeDlg"
                     Control="Next"
                     Event="NewDialog"
                     Value="InstallDirDlg"
                     Order="2">1</Publish>
            <Publish Dialog="InstallDirDlg"
                     Control="Back"
                     Event="NewDialog"
                     Value="WelcomeDlg"
                     Order="2">1</Publish>
        </UI>

        <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
        ...
    </Product>
87
Ran Davidovitz

これを回避するローテクの方法は、プロパティLicenseAccepted1に設定し、有用なreadmeタイプ情報をライセンスボックスに入れるだけです。これは、ユーザーがボックスをクリックする必要がなく、追加のダイアログの作成を心配する必要がないことを意味します:)

例:

<Property Id="LicenseAccepted" Value="1"/>
10
saschabeaumont

最も単純な最小限のUIについては、 関連する質問への回答ようこそ画面と完了画面のみを含むWiXスクリプト を参照してください。

  1. WelcomeDlg
  2. インストールの進捗
  3. 終了ダイアログ
5
Pauli Price

@Ran Davidovitzの答えはとても良い

しかし、慎重に:

<Publish Dialog="InstallDirDlg"
         Control="Back"
         Event="NewDialog"
         Value="WelcomeDlg"
         Order="2">1</Publish> 

持っているに違いない Order = "2"、または機能しません。

3
phoenix