2009-09-14 131 views
10

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

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

我想避免分发两个130 MB文件,并且最好发送一个带有两个安装程序的大型zip文件,每个文件都引用通用组件。我是否需要为公共事物创建合并模块并在每个项目中引用它们?

如果有问题,我们正在使用InstallShield 2009(Premier)。

回答

7
  • 如果你能逃脱在你的设置零64位组件,那么你可以使它成为一个100%的32位安装程序,它会在32位和同样出色的工作64位Windows。

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

+0

有没有办法将安装目录设置为每个产品配置的不同值?我没有看到任何选择。我想将它设置为32位的ProgramFiles和64位的ProgramFiles64,这样对于最终用户而言,它始终显示为安装在C:\ Program Files中。 – galuvian 2009-09-15 22:05:03

+4

在“常规信息/产品属性”视图中,将INSTALLDIR设置为ProgramFilesFolder。然后,创建一个“设置目录”自定义操作(类型35)并使用它将INSTALLDIR设置为ProgramFiles64Folder;在VersionNT64上对其进行处理,因此它只能在64位系统上运行。这是我做的使用1个项目文件来构建bot 32/64位设置。 – 2009-09-16 14:14:13

+0

这是一个古老的答案,但我希望你仍然是最重要的。据我所见,InstallShield 2014在版本视图中没有'Template Summary'字段。我如何从同一个ISM文件中获得x32和x64? – Uri 2014-11-20 21:04:15

0

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

相关问题