当选择程序文件(64位)时,InstallShield 2010安装到程序文件(x86)



我有一个非常基本的InstallShield安装程序。它将一堆磁贴放到TARGETDIR中。如果我将目标目录指定为几乎任何目录,那就是文件被丢弃的地方。(如。如果我指定C:temp,那就是文件出现的地方。)

奇怪的是,如果我指定"Program Files (x86)"下的子目录作为目标目录,文件将被安装到"Program Files"中。我(显然)在64位机器上。

这是InstallShield的一个bug吗?有解决这个问题的方法吗?我知道我的客户端(安装程序的消费者)是否必须将此安装到Program Files或x86特定的Program Files(它应该被放入现有应用程序的目录中)。

理想情况下,在客户端机器上有一个注册表项,指示在哪里安装我的东西;如果我可以利用它,这正是我想要做的

原来我的组件被设置为安装到ProgramFiles。我需要更改它们以安装到ProgramFiles64。要做到这一点:

  • 进入组件视图(安装设计器)
  • 依次点击每个组件
  • General下,寻找64-Bit Component并将其更改为Yes

通常64位包使用64位位置。因此,即使你设法在"Program Files (x86)"中安装了64位包,这也是不正确和不合逻辑的。

在64位机器上,64位产品使用"Program Files",32位产品使用"Program Files (x86)"。你可以在这里阅读更多内容:

  • http://msdn.microsoft.com/en-us/library/aa372396 (VS.85) . aspx
  • http://msdn.microsoft.com/en-us/library/aa384274 (VS.85) . aspx

所以如果你想安装在"Program Files (x86)"中,你可以使用32位包。

关于你的实际问题,最有可能的是InstallShield或Windows将你的应用程序文件重定向到正确的位置。

最新更新