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

时间:2010-04-20 14:37:49

标签: .net .net-4.0

我在我的一台服务器上安装了.net 4框架。

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

  

错误1001发生异常时   初始化安装。   System.BadImageFormatException:可以   不加载文件或程序集或其中一个   依赖。这个组件是建立的   由比当前更新的运行时   加载运行时,无法加载。

我肯定在目标机器上安装了.net 4框架 - 发生了什么?

3 个答案:

答案 0 :(得分:26)

我最终找到了解决方案,并在博客上发表了论文:Deploying .NET 4 Project – Error 1001 (System.BadImageFormatException)


更新:复制blog

中的内容

“上周在伦敦参加英国技术日活动后,我很想跳上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(事实上是两次 - 在我第一次收到此错误后!)

经过一些谷歌搜索后,有些人说要更改我的装配上的platform target,我做了,但没有用。

我最终发现了这个问题。

您需要设置.NET Framework Launch Condition

以下是如何操作:

  1. 右键单击解决方案资源管理器中的部署项目。 在上下文菜单中,选择查看 - >启动条件
  2. 在“版本”下选择“.NET Framework 4”
  3. 重建和部署我的安装文件后,一切正常。“

答案 1 :(得分:11)

  1. 单击安装程序项目,然后转到项目>属性。
  2. 单击“先决条件”按钮
  3. 选中“Microsoft .NET Framework 4(x86和x64)”框并取消选中以前版本的框架
  4. 在Prerequisites窗口和属性窗口中点击确定。
  5. 右键单击安装程序项目,然后转到查看>启动条件
  6. 突出显示.NET Framework条件并更新属性框中的以下字段 一个。 InstallURL:http://msdn.microsoft.com/en-us/netframework/aa569263.aspx
    湾版本:.NET Framework 4
  7. 重建安装程序

答案 2 :(得分:1)

那些仍在挣扎的人,请尝试以下enter image description here  转到“自定义操作”,然后在属性选项中将以下内容更新为 true enter image description here