我需要部署一个面向
Windows 64位和32位的软件设置.我有两个独立的Windows Installer数据库(使用
WiX创建)为每个平台,我正在使用
dotNetInstaller将两者组合成一个单一的安装引导程序可执行文件.
我正在使用dotNetInstaller的1.10版本,并设置auto_close_if_installed = True,因为我想全面地隐藏用户的引导程序.仍然,dotNetInstaller坚持在我的安装程序运行时显示一个窗口进度条窗口,并不真正自动关闭.用户需要确认一个对话框,告诉他应用程序已成功安装.但真正的破坏者是它不支持Windows 8(尚未).
升级到更高版本的dotNetInstaller似乎打破了auto_close_if_installed,所以更糟糕.
所以我的问题是:在单个可执行文件中部署两个设置的最新技术是什么. Wix Burn会选择吗?
我知道在一个理想的世界中,我只是为我的客户提供了两个平台的单独的安装程序.但是他们完全不了解这些微妙之处,大多数人甚至不知道他们正在使用什么平台.
在这种情况下,我一定会使用Burn.类似于以下的东西:
<Wix> <Bundle...> <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' /> <Chain> <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' /> <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' /> </Chain> </Bundle> </Wix>
这正是Burn设计的方案之一.