0

我正在 InstallShield 2012 Spring 中进行安装程序。

该安装程序适用于构建为“任何 CPU”的 .NET 应用程序,这意味着它在 32 位机器上运行 32 位,在 64 位机器上运行 64 位。

我认为这意味着应用程序应始终安装到 Program Files 文件夹,而不是 Program Files (x86) 文件夹。我想不出一种方法将应用程序安装到 64 位 Program Files 文件夹,而不会使安装程序在 32 位版本的 Windows 上无法使用。

我尝试简单地将安装路径从 ProgramFilesFolder 更改为 ProgramFiles64Folder 但这会做任何事情,除非我也将组件设为 64 位并将安装程序设置为 x64。(因此使安装程序仅64 位)

知道如何使安装程序永远不会安装到(x86)文件夹还是我是 SOL?

4

1 回答 1

1

Windows 安装程序不支持“任何 CPU”。MSI 必须标记为 x86 或 x64,并且只能分别使用 ProgramFilesFolder 和 ProgramFiles64Folder。即使您有尝试手动设置目标目录的自定义操作,Windows Installer 服务也会拦截路径并将其推回假设您的 MSI 编写错误并强制兼容。

但这并不重要。位于 PF 32 位文件夹中的任何 CPU 编译的 EXE 仍将作为 64 位应用程序运行。

如果它真的让你很困扰,你可以在我提到的那个自定义操作中使用一个短目录名称 (C:\Progra~1) 并颠覆 MSI 试图“帮助”你的尝试。

于 2013-10-16T18:03:44.173 回答