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

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

我只是简单地使用已经创build的WiX用户界面之一,并重写序列(使其更高,以便覆盖之前的设置):

<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> 

关键是要制作一个自定义的用户界面,并连接不同的页面。 请参阅WixWiki上的页面

你想抓住WixUI的最小代码 ,并修改一下。 而不是WelcomeEulaDlg欢迎对话框,您需要使用WelcomeDlg。 调整引用,并将WelcomeDlg上的Nextbutton连接到堆栈中的下一个对话框,这将是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" /> 

解决这个问题的低技术方法就是将LicenseAccepted属性设置为1 ,并将一些有用的自述types信息放入许可证框中。 这意味着用户不必点击框,你不必担心创build一个额外的对话框:)

例:

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

查看相关问题的答案 ,只有“欢迎”和“完成”屏幕的WiX脚本 ,用于最简单的最小UI:

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

@Ran Davidovitz的回答非常好

但要小心:

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

它必须有Order =“2” ,否则它不能工作。