我使用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表中看到以下行:
如果我删除突出显示的行,安装程序将按预期工作。
如何使用Wix来防止这种情况发生?
答案 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>