【问题标题】:ISEXP : error : -5008: This 32-bit package cannot include 64-bit dataISEXP:错误:-5008:此 32 位包不能包含 64 位数据
【发布时间】:2015-07-09 15:31:50
【问题描述】:

最近我将我的 Visual Studio 2008 安装程序项目升级到 InstallShield Limited Edition 项目到 Visual Studio 2013。我能够从 Visual Studio 和我的 Nant 构建脚本构建解决方案。我的解决方案构建平台是 x86/Release,我的 installshield 限量版项目构建平台是单映像,没有指定任何平台。我的电脑是Win32的,安装的是32位的installshield限量版。

现在我在 InstallShield Limited Edition 项目中添加了一个合并模块,它可以在 Win32 和 Win64 中运行。合并模块的签名指定它可以在 Win32 和 Win64 中执行。

但只要我添加了合并模块并构建了解决方案,我就会得到以下错误

ISEXP:错误:-5008:此 32 位包不能包含 64 位数据。 64 位数据可能来自合并模块。

我的合并模块是对方开发的,他们说应该在Win32和Win64下都可以工作。

【问题讨论】:

    标签: installshield-le


    【解决方案1】:

    使用 Windows Installer 时,您必须choose between making a 32-bit or a 64-bit package。 32 位包可以安装在 64 位系统上但只能访问 32 位位置; 64 位软件包无法安装在 32 位系统上,但可以访问 64 位系统上的 64 位位置。

    您引用的错误是为了避免让合并模块将您的整个包从 32 位更改为 64 位,因为这可能会导致您出现难以诊断的兼容性问题。如果要按原样使用该合并模块,则必须在项目中执行某些操作以表明您需要 64 位包,例如添加安装到 64 位位置的文件或注册表项。或者,如果您需要支持 32 位系统,您应该要求对方正确分离他们的 32 位和 64 位合并模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 2018-04-15
      • 2013-04-04
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多