x32 和 x64 文件的 VS 安装程序

VS Installer for both x32 and x64 files

我在 VS2010 (.net) 中构建了两个版本的程序:x86 和 x64 Windows。

然后我尝试将两个变体放在一个安装程序中,以便它确定(使用 VersionNT64 条件或用户对话框)它 运行 在什么系统上,并根据它安装适当的文件。 安装程序设置为针对 x86 平台,因此在 x86 系统上它可能是 运行。

问题是当我尝试将 x64 文件放入 x86 安装程序时 VS 出错: "ERROR: Module 'Microsoft_VC100_CRT_x64.msm' targeting 'x64' cannot be added to a package targeting 'x86'" (虽然 x64 安装程序中的 x86 文件没问题)

有没有办法绕过这个错误?是否可以将 x64 文件放入 x86 安装程序中?或者唯一的方法是每个系统位数有两个安装程序?

Short Answer: If you don't need to target REAL x86 machines (as in real 32-bit hardware as opposed to newer 64-bit machines with x86 subsystems), then you can just set your package 64-bit and include x86 components. I think that should work.


技术限制64-bit 软件包无法安装在真正的 x86 机器,因此标记为 x86 的包不能包含 64-bit 个组件(或者无法安装在目标平台上)。 x64 MSI 可以同时安装 x86 组件(32 位)和 x64 组件(64 位)- 它们应该针对不同的安装路径。以下是一些详细信息:Different Packages are Required for Different Processor Architectures(Microsoft 的 Heath Stewart)。

Setup.exe Launcher:我想你可以送一个setup.exe 包含两个不同的 MSI 文件:一个用于 x86 和一个用于 x64 并安装所需的一个取决于目标系统? setup.exe 必须是 x86 才能在 [=11= 上启动]台机器。在这一点上我没有做太多,大多数机器都是 64 位的,所以我使用 x86(安装在任何机器上)或 x64(安装在任何 64 位机器上)。