9

我发誓越微软“发展”Visual Studio,整个过程变得越无知。BadImageFormatException x64问题

我有一个Windows服务,里面有3个类库。我进入了每个类库的属性,并将平台目标设置为x64。我对Windows服务以及我添加的用于验证一切的测试控制台项目做了同样的事情。

我可以运行没有问题,但愚蠢的安装程序不断轰炸出来,告诉我,我有一个不好的形象在我的Windows 2008 R2的x64服务器上的控制台应用程序。我确实确保我已将安装程序的目标平台设置为x64。

我不知道的想法是这样愚蠢的事情会被轰炸了,真的希望任何见解。我参考了其他的DLL,这些可能是x86,但我认为如果主库设置正确,事情会起作用...

+4

您可能需要看你用它来描述这个问题的话,因为它是完全有可能是你的一部分,而不是任何是微软的错错误。 – 2012-04-23 05:13:16

+1

听起来像某人有架构不匹配... – 2012-04-23 05:14:48

+0

自从90年代初我一直在使用MS技术以来,我认为我有资格证明其总体有用性的迅速下降。 – 2012-04-23 05:23:19

回答

20

我终于明白了这一点 - 它与架构,引用或任何其他废话和一切与安装程序本身。正如本文所解释的 - http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx - 默认情况下,Visual Studio安装程序使用32位DLL,这是导致失败的原因。

为了克服这个问题,只需按照下列步骤操作:

  1. 请确保您进入属性=>生成标签为每个项目,并设置目标平台到x64
  2. 点击名称您的安装项目,然后点击属性,并确保目标平台是64位
  3. 构建解决方案 - 如果解不编译,右击卸载项目,然后加载,项目对于其引用失败的项目。
  4. 转到http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=3138,下载并安装7.0安装SDK
  5. 进入到C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v7.0A \ Bin文件夹,并通过对逆戟鲸双击安装奥卡.MSI文件
  6. 运行的Orca,然后打开你的项目的MSI文件夹
  7. 选择二进制表
  8. 双击备案选择
  9. 细胞[二进制数据] InstallUtil
  10. 确保“读取从文件名二进制”
  11. 点击浏览对接在浏览到C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319
  12. 选择InstallUtilLib.dll
  13. 单击打开按钮,然后确定按钮

这就是它 - 保存您的MSI文件在Orca中,然后部署它 - x64安装应该没有任何进一步的问题。

+6

顺便说一句,感谢您对MS宝宝的反对票 - 这是一个合法的问题以及其他一系列MS问题,而您无法忍受可信的批评这一事实说明了您的大量情况。 – 2012-07-20 18:10:47

+2

谢谢肯,最后是一个工作解决方案。我有个问题。作为后期制作活动能够自动完成吗?手动为数十个onf安装程序执行每个发行版都耗时... – KenGey 2014-11-17 10:24:10

+0

[Orca 5.0.7693.0(2.1MB)](http://goo.gl/EOCZi)没有来自[Orca 5 - msi编辑工具的整个SDK Windows 7](http://myserverissick.com/2011/04/orca-5-msi-editing-tool/) – 2014-11-19 09:34:20