如何构建InstallShield for .NET"任何CPU"应用

时间:2013-10-16 17:54:21

标签: .net installer windows-installer installshield

我正在使用InstallShield 2012 Spring中的安装程序。

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

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

我尝试简单地将安装路径从ProgramFilesFolder更改为ProgramFiles64Folder,但这样做除非我还将组件设置为64位并将安装程序设置为x64。 (从而使安装程序64位

任何想法如何使安装程序永远不会安装到(x86)文件夹或我是SOL?

1 个答案:

答案 0 :(得分:1)

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

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

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