10

使用 InstallShield 为 32 位和 64 位环境生成安装程序的最佳方法是什么?我的大部分应用程序都是位中性的(.net、Java、数据文件)。如果我只需要打包这些文件一次,我会更喜欢它。是否有标准方法来减少 installshield 项目的维护?目前我能找到的唯一解决方案是有两个重复的项目,其中每个组件都标记为 64 位,并且默认安装目录设置为 ProgramFiles64。必须有更好的方法来做到这一点!

我的应用程序中只有很小一部分关心它正在执行的位。我们有一些需要不同的 C++ DLL 和 JNI 调用。其中大部分是在运行时通过检查我们运行的 JRE 是否为 64 位来确定的。

我想避免分发两个 130 MB 的文件,最好发布一个包含两个安装程序的大 zip 文件,每个安装程序都引用公共组件。我是否需要为常见的东西创建合并模块并在每个项目中引用它们?

如果重要的话,我们正在使用 InstallShield 2009 (Premier)。

4

2 回答 2

7
  • 如果您可以避免在设置中使用零个 64 位组件,那么您可以将其设置为 100% 的 32 位设置,并且它在 32 位和 64 位 Windows 中同样适用。

  • 如果这不可能,我建议使用产品配置标志。在“发布”视图中,创建多个产品配置,例如“XP32”和“XP64”。根据需要标记模板摘要字段:一个为“Intel;1033”,另一个为“AMD64;1033”。将每个与唯一的产品配置标志相关联以识别它,例如“xp32”、“xp64”。然后,对于每个功能,设置适当的发布标志。您可以根据需要在 64 位组件上设置 64 位属性;只需确保您标记为“xp32”的功能中没有 64 位组件。这将允许您只有 1 个 InstallShield 项目文件,但同时生成 32 位和 64 位版本。

于 2009-09-15T05:36:34.003 回答
1

如果您使用此线程中提到的单个 32 位设置项目,您可能会遇到在 64 位系统上运行 32 位进程的问题,具体取决于您在做什么。由于您的设置是 32 位进程,因此操作系统假定它需要使用 32 位资源。在 64 位机器上,两者都有。例如,system32 和 SysWOW64。(奇怪的是,system32 包含 64 位资源,而 SysWOW64 是 32 位。)您可以通过使用 SYSNATIVE 文件系统重定向器强制操作系统使用 64 位资源。在 Windows Server 2008R2 和 2012 上使用 DISM.exe 或 PKGMGR.exe 设置 IIS 时,我发现这很有用。

于 2014-03-20T16:18:56.550 回答