【问题标题】:x86 setup for a x64 windows servicex64 Windows 服务的 x86 设置
【发布时间】:2010-09-23 21:24:25
【问题描述】:

我正在尝试运行安装包。

如果我的应用程序和它的 setupproject 以 x32 为目标,那么一切都可以正常安装。但是应用程序无法加载某些 COM+ 组件,因为它们是 64 位的。如果我用 64 位版本手动替换应用程序(设置完成后),一切运行正常。

当我将我的应用程序和安装项目更改为以 x64 为目标时,安装程​​序失败并说明:“system.BadImageFormatException: 无法加载文件或程序集 'C:\xxxxxxx' 或其依赖项之一。尝试加载格式不正确的应用程序。”

我该如何解决这个问题?

【问题讨论】:

  • 这是什么 C:\xxxxxxx 文件,您确定您使用的是 64 位版本吗?
  • C:\XXX 是我的应用程序(msi 包正在尝试安装)。我很确定,因为它是 x64 安装包中的二进制文件,如果我尝试在 64 位安装中包含我的应用程序的 32 位版本,安装项目会抱怨,反之亦然。

标签: .net 32bit-64bit setup-deployment


【解决方案1】:

听起来您的应用仍开始针对 x86 构建。您可以使用 Corflags.exe 实用程序仔细检查。请注意,目标平台设置对于每种配置类型都是独立的。您可能已经为 Debug 配置更改了它,因此它在您的开发机器上运行,但没有为您尝试部署的 Release 配置。在更改选项之前先选择配置。构建 + 配置管理器。

【讨论】:

  • 我可以提取 msi 包的内容以检查每个打包的文件吗?
  • Erm,只需检查正在放入的文件。项目的 bin\Release 文件夹。
  • 它们都没有设置 32 位标志。
【解决方案2】:

将设置保持为 64 位,但将应用程序目标更改为“AnyCPU”有效。

【讨论】:

    猜你喜欢
    • 2010-10-19
    • 2010-09-09
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2012-07-10
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多