首页 > 解决方案 > 在 WiX 3.11 / Visual Studio 2017 上自定义 WixUI_Minimal

问题描述

我正在尝试使用 Visual Studio 自定义 WiX 3.11 上设置的 WixUI_Minimal 对话框。

此处的手册不再起作用,因为它报告了很多重复的符号。例如:

Duplicate symbol 'ControlEvent:VerifyReadyDlg/Back/NewDialog/WelcomeDlg/Installed AND PATCH' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique

(这个堆栈溢出问题遇到了同样的问题)

尝试此问题中的解决方案也无济于事,因为它会出现各种错误代码(与问题中提到的不同)。

这个问题这个问题也没有帮助。

Wix 3.11 / Visual Studio 2017 中似乎出现了问题。有没有人设法理解如何修复它?我有点担心 WiX 正在失去其作者的支持......

标签: visual-studio-2017wixwix3.11

解决方案


我不确定您为什么认为 WiX 正在失去支持。这里和 wix-users 邮件列表提供了大量免费支持。他们还提供带有 SLA 和修复的付费支持选项。其他顾问(例如我自己)也提供免费支持和付费支持。

WiXUI 是一套简单易用的固定 UI,具有有限的覆盖/转换功能。您可以执行诸如将对话框插入向导循环序列之类的操作,但这样做需要您了解 ControlEvent 表区域中的行是如何计算的。

你可以在这里得到一个例子:

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI.wxs

我取消注释第 10 行会导致它消耗这个片段:

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI-CustomDialog.wxs

第 33-34 行将行插入到 ControlEvent 表中,这些行优先于现有行,基于:

https://docs.microsoft.com/en-us/windows/desktop/msi/controlevent-table

如果这对您的需求限制太大,您可以不使用 UI 扩展,而只需从此处复制所有文件,然后对它们做任何您想做的事情:

https://github.com/wixtoolset/wix3/tree/develop/src/ext/UIExtension/wixlib

最后,如果这不能满足您的需求,您始终可以为 Burn 创建自定义引导程序应用程序,并使用 WPF/MVVM 执行您可能想要的任何操作。

FWIW,我编写安装程序已有 23 年,使用 MSI 已有 16 年。我是 FOSS 项目 IsWiX 的作者,该项目提供模板和设计器来简化大部分工作的自动化。您可以在这里了解 IsWiX 的工作原理:

https://github.com/iswix-llc/iswix-tutorials

有兴趣者可免费咨询1小时。只需给我发一封电子邮件或向我发送 LinkedIn 邀请。


推荐阅读