首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BadImageFormatException x64问题

BadImageFormatException x64问题
EN

Stack Overflow用户
提问于 2012-04-23 13:10:31
回答 3查看 10.9K关注 0票数 17

我敢说微软越是“进化”Visual Studio,整个过程就会变得越愚蠢。

我有一个Windows服务,里面有3个类库。我查看了每个类库的属性,并将平台目标设置为x64。我对Windows服务以及为验证所有内容而添加的Test Console项目也做了同样的事情。

我可以在我的Windows2008 R2 x64服务器上运行控制台应用程序,没有任何问题,但愚蠢的安装程序总是突然崩溃,并告诉我有一个糟糕的映像。我确实确保将安装程序的目标平台设置为x64。

我不知道这个愚蠢的东西会爆炸,我真的很感激任何见解。我确实引用了其他DLL,这些DLL可能是x86,但我认为如果正确设置主库,事情就会正常工作……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-23 21:30:09

我最终弄清楚了这一点--它与架构、引用或任何其他胡说八道无关,一切都与安装程序本身有关。As this article explains -默认情况下,Visual Studio安装程序使用32位动态链接库,这是导致失败的原因。

要解决此问题,只需执行以下步骤:

  1. 确保进入每个项目的属性和构建选项卡,并将目标平台设置为x64
  2. 单击安装项目的名称,然后单击属性,并确保目标平台为x64
  3. 构建您的解决方案-如果该解决方案无法编译,右键单击并卸载项目,然后为其引用fail.
  4. Go here并下载并安装7.0WindowsSDK
  5. 的项目加载项目。转到C:\Program Files (x86)\Microsoft \ Orca.Msi \

\v7.0A\Bin文件夹中,通过双击

  1. 文件并运行Orca并打开项目的MSI folder
  2. Select二进制表
  3. 双击记录名称的单元格二进制数据确保选中"Read Binary from filename“<代码>H220按钮,然后单击OK按钮

就是这样--在Orca中保存你的MSI文件,然后部署它-- x64安装应该可以正常工作,不会再出现任何问题。

票数 28
EN

Stack Overflow用户

发布于 2019-02-01 03:11:16

我自己就遇到了这个问题,在Visual Studio2017中,为一个已经x86了很长时间的应用程序的x64版本构建了一个安装程序。

我不怀疑Ken的答案是明确的,但我突然想到,由于自定义操作是由安装程序调用的,而不是由安装的应用程序调用的,因此至少在我的例子中,包含自定义操作的项目没有必要与应用程序的其余部分具有相同的位性,因为它的类永远不会由应用程序本身实例化。

因此,我将该项目的平台单独更改回x86,并重新构建了安装程序。

这一切“只是起作用了”。

当然,这取决于是否拥有与解决方案的其余部分完全隔离的自定义操作。然而,不必使用Orca,这让人松了一口气。

票数 1
EN

Stack Overflow用户

发布于 2021-02-15 19:34:43

此错误发生在我将.Net 4.5+服务安装到64位计算机上时。

安装程序设置为x64

  • The服务项目生成平台设置为x64

由于BadImageFormatException,安装失败。

对我来说,解决方案是转到服务项目属性,将构建平台更改为"Any CPU",并取消选中默认选中的“ 32bit"复选框(参见what does it mean)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10275106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档