如何在没有许可证页面的情况下构建最小的WiX安装程序UI?

Ada*_*gen 72 installer wix wix3

我想使用WixUI_Minimal安装程序,但我不想要许可页面.我怎样才能做到这一点?

Ran*_*itz 89

我只是使用已经创建的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>
Run Code Online (Sandbox Code Playgroud)

  • 这会导致我的安装程序收到错误代码2819. (8认同)
  • 这对我来说很好.比其他答案简单得多. (6认同)
  • 如果它解释了放置UI标签的位置,那么这个答案会更好 (6认同)
  • @Alan我将<UI>元素放入<Product>元素中,运行正常. (3认同)

Ada*_*gen 53

关键是制作自定义UI并连接不同的页面.请参阅WixWiki上的页面

你想获取WixUI最小代码,并稍微修改它.您不想使用WelcomeEulaDlg欢迎对话框,而是使用WelcomeDlg.调整引用,并将WelcomeDlg上的Next按钮连接到堆栈中的下一个对话框,即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" />
Run Code Online (Sandbox Code Playgroud)

  • wixwiki链接已损坏. (2认同)

sas*_*ont 11

技术含量低的方式来解决这个问题很简单,就是设置属性LicenseAccepted1,并把一些有用的自述型信息到牌照框.这意味着用户无需单击该框,您无需担心创建其他对话框:)

例:

<Property Id="LicenseAccepted" Value="1"/>
Run Code Online (Sandbox Code Playgroud)

  • 具体来说:`<Property Id ="LicenseAccepted"Value ="1"/>` (3认同)

Pau*_*ice 6

查看回答一个相关的问题,WiX的脚本只有欢迎和已完成的屏幕,对于最简单的用户界面最小:

  1. WelcomeDlg
  2. 安装进度
  3. 退出对话框

  • 这是我一直在寻找的答案。这里的所有其他解决方案都有缺点,需要更多的点击才能通过对话框。 (2认同)