单个安装程序,用于安装32位和64位版本的应用程序

时间:2015-02-18 09:08:14

标签: visual-studio-2010 visual-studio wix

我需要为Windows服务应用程序构建自定义安装程序,使得单个安装程序应该选择(radiobutton)来选择32位或64位版本,并且应该在客户机。

Windows服务是在旧版VC ++中构建的,最近使用VS2010进行了升级。

寻找可以实现的建议。我已经尝试过安装和部署项目以及Wix。

此致 哈里什

2 个答案:

答案 0 :(得分:2)

您不能这样做,因为MSI本身标有其架构,因此您需要两个单独的MSI文件。

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

其中“不同的包”表示两个单独的MSI文件。这不是“什么工具可以做到这一点”的问题,因为它是MSI文件的工作方式。在64位系统上,安装包含32位和64位组件的MSI,在x86上,MSI必须仅包含32位组件:

https://msdn.microsoft.com/en-us/library/aa367451(v=vs.85).aspx

所以你只需要在64位系统上安装一个MSI。

在WiX中,您可以从共同的来源构建它们:

http://blogs.msdn.com/b/astebner/archive/2007/08/09/4317654.aspx One MSI for 32-bit and 64-bit http://alekdavis.blogspot.com/2011/05/build-32-and-64-bit-installers-using.html

我认为WiX有一个引导程序,可以为系统架构选择合适的MSI。

答案 1 :(得分:0)

我没有找到任何正确的方法来做到这一点,但是在不同的论坛的帮助下,经过一些脑力激荡,我能够构建单个安装程序,这有助于创建32位或64位安装程序。

首先,我分别创建了32位和64位MSI安装程序 然后我创建了一个Windows窗体应用程序,要求选择版本(32位或64位),并根据选择它执行32位或64位MSI。
最后我为Windows窗体应用程序创建了一个简单的安装程序。

所以最后我得到了一个安装程序,可以用来安装32位或64位版本的应用程序。登记/>
这是执行最终安装程序时发生的事情 -
1.最终安装程序将win表单应用程序安装在C:\ temp \目录中并执行win表单应用程序 2. Win form app要求选择所需的版本(32位或64位) 3.根据选择win form应用程序启动32位或64位MSI并终止 4. MSI启动并执行其操作,最后它从系统中卸载Win表单应用程序。

您将需要多次测试并根据您的要求处理一些添加方案。希望这对其他人有帮助。

注意:我必须使用这种方法而不是Wix引导程序的原因是因为有两个要求 -
1.客户希望选择安装哪个版本(32位/ 64位),而不管其系统架构如何。这意味着他们想要在64位机器上使用32位应用程序,如果他们想要的话 2.他们也只寻找一个安装程序,意味着一个安装程序应该在32位和64位计算机上工作,这是使用Wix引导程序无法实现的。