从WixUI_FeatureTree中删除EULA

时间:2016-07-01 12:14:50

标签: installation wix windows-installer msiexec

我使用WixUI_FeatureTree作为安装程序,我试图删除EULA屏幕。

为此,我使用了以下内容:

<UI>
  <UIRef Id="WixUI_FeatureTree" />
   <Publish Dialog="WelcomeDlg"
      Control="Next"
      Event="NewDialog"
      Value="CustomizeDlg">1</Publish>

    <Publish Dialog="CustomizeDlg"
      Control="Back"
      Event="NewDialog"
      Value="WelcomeDlg">1</Publish>
</UI>

WelcomeDlg点击下一步时成功删除了EULA,但点击CustomizeDlg会显示EULA。

当我在Orca中查看时,我在ControlEvent表中看到以下行:

enter image description here

如果我删除突出显示的行,安装程序将按预期工作。

如何使用Wix来防止这种情况发生?

2 个答案:

答案 0 :(得分:1)

你可以相对容易地做到这一点。

只需复制&#34; WixUI_FeatureTree&#34;的定义。来自here的UI(Wix的GitHub)并将其作为MyFeatureTreeUI.wxs或其他内容添加到您的项目中,只需将<UI Id="WixUI_FeatureTree">重命名为新的唯一名称,删除该行

<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" Order="2">NOT Installed</Publish>

然后更新产品中的<UIRef>,以便在您制作的新wxs文件中引用新修改的FeatureTree UI。

现在编译安装程序时,它应该在功能上与您创建的安装程序完全相同,但默认情况下,您手动删除的行不再存在。

您还可以删除UI wxs中提及的所有LicenseAgreementDlg,只需确保所有对话框按钮都一致。

答案 1 :(得分:0)

我知道这是在不久前回答的,但是...在未能“相对轻松地”实现上述解决方案之后,我找到了“最简单的”解决方案。

将WixBalExtension.dll添加到引导程序,并在Bundle.wxs文件中使用以下代码。 Wix工具集将省略内置的EULA!

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
      <bal:WixStandardBootstrapperApplication
        LicenseUrl="" />
</BootstrapperApplicationRef>