2013-10-16 21 views
0

我正在使用InstallShield 2012 Spring中的安装程序。如何构建适用于.NET的InstallShield“任何CPU”应用程序

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

我假设这意味着应用程序应该总是安装到Program Files文件夹,而不是Program Files(x86)文件夹。我找不到将应用程序安装到64位Program Files文件夹而不使安装程序在32位版本的Windows上不可用的方法。

我试着简单地将ProgramFilesFolder的安装路径更改为ProgramFiles64Folder,但是除非将组件设置为64位并将安装程序设置为x64,否则这将执行任何操作。 (因此使安装程序64位只有

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

回答

1

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

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

如果真的让你困惑不已,你可以在我提到的那个自定义操作中使用一个简短的目录名(C:\ Progra〜1),并且可以颠覆MSI为你提供帮助的企图。

相关问题