安装 .net 4 项目到目标服务器 - 错误 System.BadImageFormatException

17

我已经在其中一个服务器上安装了.Net 4框架。

当我运行在Visual Studio创建的安装项目时,出现以下错误:

初始化安装时发生错误1001例外情况。 System.BadImageFormatException:无法加载文件或程序集中的一个或多个依赖项。此程序集是由比当前已加载的运行时更新的运行时构建的,因此无法加载。

我确定已在目标机器上安装了.NET 4框架-出了什么问题?

3个回答

28

最终我找到了解决方案,并在博客中写道:部署 .NET 4 项目 - 错误 1001(System.BadImageFormatException)


更新:博客复制内容:

“上周在伦敦参加英国 Tech Days 活动后,我迫不及待地加入了 Visual Studio 2010 和 .net 4.0 的行列。

我将我们在 Crocus 的一些项目转换为 .net 4 框架(这非常容易 - 没有任何损坏!) 我甚至利用了 .net 4 中一些快速实现功能,将我们的一些大量覆盖的方法转换为使用可选参数。

其中一个特定项目是一个 Windows 服务,按计划发送采购订单。 (我最近写过关于由于 Quartz.net 期望 UTC 开始时间而导致此服务出现错误的文章)

该项目与 Visual Studio 部署项目相关联。

在构建新升级的 .net 4 版本的项目并将 .msi 文件部署到目标服务器后,我遇到了以下错误:

 

初始化安装时发生异常 1001 错误。   System.BadImageFormatException:无法加载文件或程序集之一   其依赖项。此程序集是由当前加载的运行时版本更新的   并且不能加载。

现在,我肯定已将该服务器升级为 .net 4(事实上,这是第二次 - 在第一次我收到此错误后!)

经过一些谷歌搜索,有些人说要更改我的程序集上的平台目标,我也这样做了,但没有效果。

最终我发现了问题所在。

您需要设置.NET Framework启动条件

以下是操作步骤:

  1. 在解决方案资源管理器中右键单击部署项目。 在上下文菜单中,选择 查看 -> 启动条件
  2. 在“版本”下选择“.NET Framework 4”

重新构建和部署设置文件后,一切都可以正常工作。


我也遇到了同样的问题。然而,你的链接在工作中被阻止了。由于某些原因,它被标记为恶意网站。你能指引我正确的方向吗? - Kevin
我很幸运在我的网站上遇到了那个"裤子牛病毒"- 以上答案是对该操作的概括。 - Alex
答案是一个错误的链接。太糟糕了,真的需要这个。 - user82646
4
从Google缓存中检索:1)在解决方案资源管理器中右键单击部署项目 -> 查看 -> 启动条件 2)检查.NET Framework节点的属性:在“版本”下选择.NET Framework 4 3)重新构建并部署安装文件后,一切应该正常。附言:对我有用-谢谢。 - Den
@alexjamesbrown 谷歌搜索和浏览了很多,但这一击中要害.. 完美的一次性工作解决方案。这就是为什么+1。 - Never Quit

11
  1. 点击安装程序项目,然后转到Project>Properties(项目>属性)。
  2. 点击Prerequisites(先决条件)按钮
  3. 勾选“Microsoft .NET Framework 4 (x86和x64)”框并取消选择先前版本的Framework
  4. 在Prerequisites窗口和属性窗口上点击ok。
  5. 右键单击安装程序项目,转到View>Launch Conditions(查看>发行条件)
  6. 突出显示.NET Framework条件,并在属性框中更新以下字段
    a. InstallURL: http://msdn.microsoft.com/en-us/netframework/aa569263.aspx
    b. Version: .NET Framework 4
  7. 重新构建安装程序

这对我来说并没有解决问题。所有设置都是x64和.NET Framework 4,但我仍然收到此错误。 - Triynko

6

如果您仍然遇到问题,请尝试以下操作:输入图像描述 前往“自定义操作”,在属性选项中将以下内容更新为true输入图像描述


非常感谢您的这篇文章。这个问题一直困扰着我。 - vSteve
这是一个针对安装时出现错误的x64服务的答案! - SpokaneDJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接