我有一个非常基本的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将你的应用程序文件重定向到正确的位置。