【问题标题】:Installshield 64-bit project setupInstallshield 64 位项目设置
【发布时间】:2009-09-14 19:17:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: installshield


    【解决方案1】:
    • 如果您可以避免在您的设置中使用零个 64 位组件,那么您可以将其设置为 100% 32 位设置,它在 32 位和 64 位中同样适用窗户。

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

    【讨论】:

    • 有没有办法可以将每个产品配置的安装目录设置为不同的值?我没有看到任何选择。我想将其设置为 32 位的 ProgramFiles 和 64 位的 ProgramFiles64,以便最终用户始终将其显示为安装在 C:\Program Files 中。
    • 在常规信息/产品属性视图中,将 INSTALLDIR 设置为 ProgramFilesFolder。然后,创建一个“设置目录”自定义操作(类型 35)并使用它将 INSTALLDIR 设置为 ProgramFiles64Folder;在 VersionNT64 上调节它,因此它只能在 64 位系统上运行。这就是我使用 1 个项目文件来构建 bot 32/64 位设置的方法。
    • 这是一个旧答案,但我希望你仍然在它之上。据我所知,InstallShield 2014 在 Releases 视图中没有 Template Summary 字段。如何从同一个 ISM 文件中获得 x32 和 x64?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 2010-11-18
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多