删除许可证对话框

时间:2012-10-24 08:42:08

标签: wix wix3.6

我正在使用 Wix 3.6 制作一个内部使用的简单MSI。我想知道是否有一种简单的方法可以删除许可协议对话框。

感谢您的任何建议

4 个答案:

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

欢迎对话框上的下一步按钮绑定到安装目录对话框(或许可证对话框后的对话框),以及安装对话框返回按钮欢迎对话框 - 有效删除许可证对话框。