我们有一个大问题。我们想要创建一个 WIX 安装程序,如果我运行安装程序的机器是:
1) Windows 7 或更高版本我必须显示一个界面,我可以在其中收集用户选择我必须使用哪个数据库(MS Access、MS LocalDB、MS SQL Server)。
2) Window 7 之前的版本我不必显示数据库选择的界面,因为我想强制我的应用程序使用 MS Access。
在这一步之后,如果用户选择了 MS LocalDB 选项,我必须安装 SQL Server Express LocalDB Runtime。运行时安装程序有 2 个文件,一个用于 x86,一个用于 x64。因此,只有当用户想要使用 LocalDb 并安装正确的包检查机器类型(x86 或 x64)时,我才必须安装运行时。
所以我们创建了一个带有链的捆绑包。该链包含:
1) 我们的应用程序 WIX 安装程序
2) x86 的 SQL LocalDB 运行时
3) x64 的 SQL LocalDB 运行时
我们尝试了两种方法:
1) 将选择放入 WIX 安装程序中的界面:我们可以显示和隐藏数据库选择界面,但我们不能将所选数据库的值传递给捆绑软件来决定是否安装以及哪个运行时安装
2)将单选按钮放入捆绑包的选项页面,但如果我的操作系统在 Windows 7 之前,我们无法隐藏选项按钮。我们尝试了 thmutil 扩展(http://wixtoolset.org/documentation/manual/v3/ xsd/thmutil/),但不能插入一个条件来禁用该按钮。
所以我们的问题是:
根据用户选择安装不同软件包的正确方法是什么?
有没有办法允许 WIX 安装程序和捆绑包之间进行双向通信?
谢谢!