运行时异常System.BadImageFormatException

时间:2014-02-03 02:44:29

标签: c# .net badimageformatexception

请帮助,我已经尝试了其他一切我能想到的解决这个问题的方法。

在您回复之前请注意:

我已经从StackOverflow.com上的其他问题和网络上的其他问题做了我所能做的一切。例如但不限于:将构建配置从“任何CPU”更改为“x64”甚至更改为“x86”。并且还将目标版本从.NET 4.0更改为.NET 3.5(这不起作用,因为我使用的是需要.NET 4.0的System.Windows.Interactivity)所以我更倾向于使用.NET 4.0。所以请不要回答告诉我这样做,因为我已经尝试了各种组合。


我在VS2013中有一个名为TimersXP的项目,它是CodePlex.com上的一个开源项目: https://timersxp.codeplex.com/

它构建没有任何错误,但我得到一个运行时异常: System.BadImageFormatException未处理 消息:未知模块中出现未处理的类型'System.BadImageFormatException'的异常。 附加信息:无法加载文件或程序集“TimersXP.exe”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

有点历史,该项目最初是.NET 3.5,但是当我发现我必须添加System.Windows.Interactivity并且必须支持.NET 4.0时,我提出了版本号。

<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries\System.Windows.Interactivity.dll</HintPath>
  <Private>False</Private>
</Reference>

是的我知道它说4.5.0.0版。我也试过了它的组合。除非我错过了一些与预期不同的组合。

它是开源的,所以项目的所有代码都可用,有人可以帮帮我吗?我担心我没有想法。

也许在App.config文件中有这个版本号?

<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

我不想只是浏览所有代码并将其所说的版本更改为3.5或4.0或4.5。这似乎不是一个好主意。

像往常一样,一旦我看到它,我可能会想要踢自己!

3 个答案:

答案 0 :(得分:10)

奇怪的是,在我的情况下,我的项目属性已经显示为4.5.2但我的app.config仍然显示运行时版本为2.0。我右键点击了项目&gt;选择项目属性&gt;首先将目标框架更新为4.5.1,然后更新为4.5.2。这样做了诀窍并更新了app.config,如下所示:

<强>之前:

<startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>

<强>后:

<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>

答案 1 :(得分:9)

我有一个类似的问题,还有一个超级简单的控制台应用程序,但我的结果是因为它依赖于一些仅设置为 x86 的库,并且它不会起作用的 AnyCPU

修复程序:将我的控制台应用程序更改为 仅构建在x86配置 ,并且运行良好。

System.BadImageFormatException was unhandled
Message: An unhandled exception of type 'System.BadImageFormatException'     occurred in Unknown Module.
Additional information: Could not load file or assembly 'My.Assembly,     Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its     dependencies. An attempt was made to load a program with an incorrect format.

Screenshot of Exception message

另见:Troubleshooting BadImageFormatException

答案 2 :(得分:4)

我删除了

<startup>
    <supportedRuntime version="v2.0.50727"/>
</startup>
配置和应用程序的

部分工作。

我认为该声明在需要2和4时将应用限制为框架2。