【发布时间】:2012-10-20 07:04:08
【问题描述】:
我需要部署针对 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,但感觉有点矫枉过正。我很想看看其他人的想法。
-
@Brice:问题是,Burn 似乎也不是很可靠。使用它部署了 Visual Studio Update 1 CTP 3,但由于 Burn 无法在我的计算机上安装:Microsoft Connect 766849
-
我建议为此刻录,一个包标有 InstallCondition="NOT VersionNT64",另一个标有 InstallCondition="VersionNT64"。使用刻录,您可以创建单个 exe 包,用户不必运行正确的包。
-
@DanielGehriger 您指向的连接问题是 Visual Studio 团队编写的 WPF Bootsrapper 应用程序中的问题。 Burn 引擎工作正常,这是他们代码中的一个错误。识别问题并不容易,因为问题正在破坏他们的 UI。 :)
标签: wix windows-installer bootstrapping dotnetinstaller