我敢说微软越是“进化”Visual Studio,整个过程就会变得越愚蠢。
我有一个Windows服务,里面有3个类库。我查看了每个类库的属性,并将平台目标设置为x64。我对Windows服务以及为验证所有内容而添加的Test Console项目也做了同样的事情。
我可以在我的Windows2008 R2 x64服务器上运行控制台应用程序,没有任何问题,但愚蠢的安装程序总是突然崩溃,并告诉我有一个糟糕的映像。我确实确保将安装程序的目标平台设置为x64。
我不知道这个愚蠢的东西会爆炸,我真的很感激任何见解。我确实引用了其他DLL,这些DLL可能是x86,但我认为如果正确设置主库,事情就会正常工作……
发布于 2012-04-23 21:30:09
我最终弄清楚了这一点--它与架构、引用或任何其他胡说八道无关,一切都与安装程序本身有关。As this article explains -默认情况下,Visual Studio安装程序使用32位动态链接库,这是导致失败的原因。
要解决此问题,只需执行以下步骤:
\v7.0A\Bin文件夹中,通过双击
就是这样--在Orca中保存你的MSI文件,然后部署它-- x64安装应该可以正常工作,不会再出现任何问题。
发布于 2019-02-01 03:11:16
我自己就遇到了这个问题,在Visual Studio2017中,为一个已经x86了很长时间的应用程序的x64版本构建了一个安装程序。
我不怀疑Ken的答案是明确的,但我突然想到,由于自定义操作是由安装程序调用的,而不是由安装的应用程序调用的,因此至少在我的例子中,包含自定义操作的项目没有必要与应用程序的其余部分具有相同的位性,因为它的类永远不会由应用程序本身实例化。
因此,我将该项目的平台单独更改回x86,并重新构建了安装程序。
这一切“只是起作用了”。
当然,这取决于是否拥有与解决方案的其余部分完全隔离的自定义操作。然而,不必使用Orca,这让人松了一口气。
发布于 2021-02-15 19:34:43
此错误发生在我将.Net 4.5+服务安装到64位计算机上时。
安装程序设置为x64
的
由于BadImageFormatException,安装失败。
对我来说,解决方案是转到服务项目属性,将构建平台更改为"Any CPU",并取消选中默认选中的“ 32bit"复选框(参见what does it mean)。
https://stackoverflow.com/questions/10275106
复制相似问题