我正在使用 Wix 3.6 制作一个内部使用的简单MSI。我想知道是否有一种简单的方法可以删除许可协议对话框。
感谢您的任何建议
答案 0 :(得分:34)
我跳过它:
<UI>
<UIRef Id="WixUI_InstallDir" />
<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>
答案 1 :(得分:7)
关键是制作自定义用户界面并连接不同的页面。请参阅WixWiki上的页面
你想要获取你正在使用的对话框的WixUI代码(例如Minimal等),调用它<UI Id='MyAppWix_UIMinimal'>
并稍微修改它并在你的主要wxs中引用它。您不想使用WelcomeEulaDlg欢迎对话框,而是使用WelcomeDlg。调整引用,并将WelcomeDlg上的Next按钮连接到堆栈中的下一个对话框。
以下是与代码http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html
的良好链接答案 2 :(得分:7)
上面提到的这种简化(http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html)对我有用;这有效地跳过许可证而不是挂钩自定义页面
<UI Id='Mondo'>
<UIRef Id="WixUI_Mondo" />
<UIRef Id="WixUI_ErrorProgressText" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="3">1</Publish>
<!-- skip the page on the way back too -->
<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish>
</UI>
我要说复制wix代码的一般方法并稍微破解它(“更改内置对话框的UI序列”(http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html))有点注定真的....但是嘿
答案 3 :(得分:5)
我最近遇到了一个模仿Wix XML文件的Wix项目,但是你可以使用C#编写设置代码。您可以在https://wixsharp.codeplex.com找到此项目。我最初在使用“条款和条件”的许可文件时遇到了同样的问题,在用户安装软件之前需要接受该文件。由于解决方案不具备要求接受“条款和条件”的性质,我必须找到一种方法来删除此对话框。
经过一番搜索(在Wix#中)后,我想出了以下内容:
WixSharp.CommonTasks.Tasks.RemoveDialogsBetween(project,
WixSharp.Controls.NativeDialogs.WelcomeDlg,
NativeDialogs.InstallDirDlg);
好吧,我知道这并不能彻底解决问题,因为这意味着您必须重新编写解决方案的代码,因此下一个调用端口是查看发出的WiX源文件在此过程中。
因此,我看到有一个<UI>
元素,其中包含以下内容:
<UI>
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="5">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="5">1</Publish>
</UI>
将欢迎对话框上的下一步按钮绑定到安装目录对话框(或许可证对话框后的对话框),以及安装对话框的返回按钮欢迎对话框 - 有效删除许可证对话框。