C# 运行时异常System.BadImageFormatException
请帮帮我,我已经想尽一切办法来解决这个问题了 在您回复之前,请注意: 从StackOverflow.com上的其他问题和web上的其他软件,我已经尽了我所能。例如但不限于:将构建配置从“任意CPU”更改为“x64”,甚至更改为“x86”。另外,还将目标版本从.NET 4.0更改为.NET 3.5(这不起作用,因为我使用的是System.Windows.Interactivity,它需要.NET 4.0),因此我一直使用.NET 4.0。所以请不要给我一个答案告诉我这样做,因为我已经尝试了各种组合C# 运行时异常System.BadImageFormatException,c#,.net,badimageformatexception,C#,.net,Badimageformatexception,请帮帮我,我已经想尽一切办法来解决这个问题了 在您回复之前,请注意: 从StackOverflow.com上的其他问题和web上的其他软件,我已经尽了我所能。例如但不限于:将构建配置从“任意CPU”更改为“x64”,甚至更改为“x86”。另外,还将目标版本从.NET 4.0更改为.NET 3.5(这不起作用,因为我使用的是System.Windows.Interactivity,它需要.NET 4.0),因此我一直使用.NET 4.0。所以请不要给我一个答案告诉我这样做,因为我已经尝试了各种组合
我在VS2013中有一个名为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>
假的
C:\Program Files(x86)\Microsoft SDK\Expression\Blend\.NETFramework\v4.0\Libraries\System.Windows.Interactivity.dll
假的
是的,我知道上面写着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。那似乎不是个好主意
像往常一样,一旦我看到它,我可能会想踢自己 奇怪的是,在我的例子中,我的项目属性已经显示为4.5.2,但我的app.config仍然显示运行时版本为2.0。我右键单击项目>选择项目属性>首先将目标框架更新为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>
之后:
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
我在一个超级简单的控制台应用程序上也遇到了类似的问题,但我的问题是因为它依赖于一些只设置为x86的库,并且它不能在任何CPU上运行 修复程序:将我的控制台应用程序更改为也仅基于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.
另请参见:我删除了
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
从配置和应用程序的部分工作
我假设该语句将应用程序限制为框架2,而它需要2和4。在所有参与的程序集上运行
corflags
,您将很快看到,哪一个在工作中格式错误。将发布结果。感谢您需要加载正确版本的CLR。应用程序配置支持的运行时为2.0版。您需要将其更改为使用4.0。有关正确配置的详细信息,请参阅。您也可以删除应用程序配置,因为其中没有任何其他内容。嘿,Mike Z,您介意将您的解决方案转换为答案,以便我们关闭此问题吗?谢谢。如果你在初次安装后(意思是在更新中)不移动应用程序配置,你会一直坚持这个问题,直到找到这个问题为止。。。。非常感谢。