3

我正在创建一个Visual Studio 2010安装项目来安装我的应用程序。我的应用程序通过为不同的系统位数提供多个可执行文件来工作,并检测您是否在32位或64位系统上运行。安装VC++运行时64位如果系统是64位

如果是64位系统,我希望安装由安装程序安装的Visual C++ 2010 x64运行时。将此设置为先决条件,禁用32位系统上的安装。有没有什么方法可以将此设置为先决条件,但仅限于64位系统,而不诉诸两种不同的安装程序?

回答

2

您需要为64位版本和32位版本创建单独的MSI文件来处理WOW64的特性。

它是不可能有一个单一的MSI安装两个64位和32位版本:

Different Packages are Required for Different Processor Architectures

因为你将有单独的MSI文件它应该可以轻松地将64位VC++运行时可再发行组件添加到64位MSI,将32位可再发行组件添加到32位MSI。

当然,您可以创建一个引导程序来检查系统架构,然后启动相应的MSI文件。我相信dotNetInstaller提供了如related question所示的机制。

+0

我该如何在VS2010中做到这一点?我可以创建两个安装项目,并使32位安装程序包含64位安装程序吗?如果是这样,我该如何安装64位版本,具体取决于系统的位数? – 2010-09-23 09:30:27

+0

我想我的解决方案是在安装过程中放弃x64要求。当您启动程序时,我会提示用户下载并安装正确的程序包(直接链接)以使程序正常工作。在稍后的阶段,我可能会添加一个更简化的方法,自动下载并安装它(当然还有用户的许可)。 – 2010-09-23 09:57:00