4

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

奇怪的是,如果我在“Program Files (x86)”下指定一个子目录作为目标目录,这些文件就会安装到“Program Files”。我(显然)在 64 位机器上。

这是 InstallShield 中的错误吗?有解决办法吗?我知道我的客户(安装程序的消费者)是否必须将其安装到 Program Files 或特定于 x86 的 Program Files(它应该被放入现有应用程序的目录中)。

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

4

2 回答 2

5

事实证明我的组件设置为安装到ProgramFiles. 我需要将它们更改为安装到ProgramFiles64. 去做这个:

  • 转到您的组件视图(安装设计器)
  • 一个一个地点击每个组件
  • 在 下General,查找64-Bit Component并将其更改为Yes

这解决了它。

于 2011-10-18T12:50:31.807 回答
0

通常 64 位软件包使用 64 位位置。因此,即使您以某种方式设法在“Program Files (x86)”中安装了 64 位软件包,这也是不正确且不合逻辑的。

在 64 位机器上,64 位产品使用“Program Files”,32 位产品使用“Program Files (x86)”。您可以在此处阅读有关此内容的更多信息:

因此,如果要安装在“Program Files (x86)”中,可以使用 32 位软件包。

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

于 2011-10-19T06:16:17.947 回答