在本文中,我们将给您介绍关于对BadImageFormatException进行故障排除的详细内容,此外,我们还将为您提供关于.Net5中的ObjectDataProvider抛出System.Bad
在本文中,我们将给您介绍关于对BadImageFormatException进行故障排除的详细内容,此外,我们还将为您提供关于.Net 5 中的 ObjectDataProvider 抛出 System.BadImageFormatException、.net – CorFlags.exe,System.Data.SQLite.dll和BadImageFormatException、.net – 什么原因导致System.BadImageFormatException时构造System.Data.SQLite.SQLiteConnection、.net – 尝试加载Oracle客户端库引发了BadImageFormatException的知识。
本文目录一览:- 对BadImageFormatException进行故障排除
- .Net 5 中的 ObjectDataProvider 抛出 System.BadImageFormatException
- .net – CorFlags.exe,System.Data.SQLite.dll和BadImageFormatException
- .net – 什么原因导致System.BadImageFormatException时构造System.Data.SQLite.SQLiteConnection
- .net – 尝试加载Oracle客户端库引发了BadImageFormatException
对BadImageFormatException进行故障排除
我有一个使用Visual Studio 2010 C#编写的Windows服务,目标是完整的.NET
Framework4。从Debug版本运行时,该服务将按预期运行。但是,当我从Release版本运行它时,我得到了System.BadImageFormatException(详细信息如下)。我一直在互联网上寻找解决方案,但到目前为止,我发现的每一件事都没有帮助我找到解决方案。
Windows 7 64位(dev)和Windows XP SP3 32位(目标)系统上都存在此问题。
到目前为止,这是我尝试过的:
- 经过验证的构建设置(例如Platform Target)都相同(x86)。
- 使用带有/ verbose选项的peverify来确保程序集二进制文件有效。
- 使用fuslogvw查找任何加载问题。
- 使用CheckAsm查找丢失的文件或组件。
所有这些检查都没有改变任何东西。我在下面提供了异常信息的全文,其中一些名称已更改,以保护公司负责人的秘密。
System.BadImageFormatException未处理 消息=无法加载文件或程序集''XxxDevices,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null''或其依赖项之一。试图加载格式错误的程序。 源= XxxDevicesService FileName = XxxDevices,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null FusionLog =程序集管理器从以下位置加载:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll在可执行文件c:\ Dev \ TeamE \ bin \ Release \ XxxDevicesService.vshost.exe下运行---详细的错误日志如下。===预绑定状态信息===日志:用户= XXX日志:DisplayName = XxxDevices,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null (完全指定)日志:Appbase = file:/// c:/ Dev / TeamE / bin / Release /日志:初始PrivatePath = NULL调用程序集:XxxDevicesService,版本= 1.0.0.0,文化=中性,PublicKeyToken =空。===日志:此绑定在默认的加载上下文中启动。日志:使用应用程序配置文件:c:\ TeamE \ bin \ Release \ XxxDevicesService.vshost.exe.Config日志:使用主机配置文件: 日志:使用C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config中的计算机配置文件。日志:目前未将策略应用于引用(私有,自定义,部分或基于位置的程序集绑定)。日志:尝试下载新的URL文件:/// c:/TeamE/bin/Release/XxxDevices.DLL。ERR:无法完成装配的设置(hr = 0x8007000b)。探测终止。 堆栈跟踪: 在XxxDevicesService.Program.Main(String [] args) 在System.AppDomain._nExecuteAssembly(RuntimeAssembly程序集,String []参数) 在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在System.Threading.ExecutionContext.Run(ExecutionContext执行上下文,ContextCallback回调,对象状态,布尔ignoreSyncCtx) 在System.Threading.ExecutionContext.Run(ExecutionContext执行上下文,ContextCallback回调,对象状态) 在System.Threading.ThreadHelper.ThreadStart() InnerException:
答案1
小编典典经过验证的构建设置(例如Platform Target)都相同(x86)。
崩溃日志不是这样写的:
程序集管理器从以下位置加载:C:\ Windows \ Microsoft.NET \ Framework64
Note the 64 in the name, that’s the home of the 64-bit version of the
framework. Set the Target platform setting on your EXE project, not your
class library project. The XxxDevicesService EXE project determines the
bitness of the process.
.Net 5 中的 ObjectDataProvider 抛出 System.BadImageFormatException
如何解决.Net 5 中的 ObjectDataProvider 抛出 System.BadImageFormatException?
我正在尝试在 ObjectDataProvider
网络应用程序中使用 .Net-5
。因此我需要使用 System.Windows.Data
,它可以与 PresentationFramework.dll
一起使用。我将程序集包含在 NuGet (<packagereference Include="PresentationFramework" Version="4.6.0" />
) 中。当我构建我的应用程序时,我已经收到以下警告:
warning NU1701: Package ''PresentationFramework 4.6.0'' was restored using ''.NETFramework,Version=v4.6.1,.NETFramework,Version=v4.6.2,Version=v4.7,Version=v4.7.1,Version=v4.7.2,Version=v4.8'' instead of the project target framework ''net5.0''. This package may not be fully compatible with your project.
然后,当我尝试使用 ObjectDataProvider
创建一个 ObjectDataProvider myODP = new ObjectDataProvider();
对象时,我的应用程序崩溃了:
System.BadImageFormatException: Could not load file or assembly ''PresentationFramework,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35''. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)
File name: ''PresentationFramework,PublicKeyToken=31bf3856ad364e35'' ---> System.BadImageFormatException: Cannot load a reference assembly for execution.
如果感兴趣,我正在 x64 系统上的 Linux docker 容器 (mcr.microsoft.com/dotnet/sdk:5.0-focal
) 中运行我的应用程序。
从我的 Google 搜索中,我已经尝试删除 bin
文件夹并重新构建,但没有成功。
其他答案似乎表明 System.BadImageFormatException
表示引用了 x86 程序集,而我正在为 x64 构建。除了来自 NuGet 的版本,我似乎找不到任何其他版本的 PresentationFramework.dll
。
还是 ObjectDataProvider
只是 deprecated?
我的问题是:如何解决此问题并使 ObjectDataProvider
在 .Net-5
中工作?
甚至可以在 PresentationFramework.dll
中使用 .Net-5
吗?
顺便说一句,我也尝试让它在 .Net-3.1
中工作,但也出现了同样的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
.net – CorFlags.exe,System.Data.SQLite.dll和BadImageFormatException
Version : v2.0.50727 CLR Header: 2.5 PE : PE32 CorFlags : 24 ILONLY : 0 32BIT : 0 Signed : 1
如您所见,未指定32BIT且PE等于PE32.根据Moving from 32-bit to 64-bit application development on .NET Framework,这意味着该组件是任何cpu.但是,使用64位应用程序中的程序集会导致错误:
System.BadImageFormatException: Could
not load file or assembly
‘System.Data.sqlite’ or one of its
dependencies. An attempt was made to
load a program with an incorrect
format. File name:
‘System.Data.sqlite’
如果CorFlags.exe报告任何cpu,为什么会发生异常?组件是否错误标记为32BIT:0?
我知道有一个64位版本也可用,我只是想知道导致错误的原因.
解决方法
.net – 什么原因导致System.BadImageFormatException时构造System.Data.SQLite.SQLiteConnection
Dim cn As System.Data.sqlite.sqliteConnection
当从WinForm应用程序调用代码时,我得到以下错误:
System.BadImageFormatException: Could
not load file or assembly
‘System.Data.sqlite,Version=1.0.65.0,
Culture=neutral,
PublicKeyToken=db937bc2d44ff139’ or
one of its dependencies. An attempt
was made to load a program with an
incorrect format. File name:
‘System.Data.sqlite,
PublicKeyToken=db937bc2d44ff139’
然而从MS单元测试I调用同一段代码没有得到错误,加上完整的代码集工作原理。
.net – 尝试加载Oracle客户端库引发了BadImageFormatException
尝试加载Oracle客户端库会引发BadImageFormatException.在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.
在经历了许多链接后,我试图通过将平台目标更改为任何cpu来克服此异常.因为它是wpf应用程序,在更改平台目标后,它会抛出以下异常:
‘对指定绑定约束匹配的类型’SSC_GIP_UI.MainWindow’上的构造函数的调用引发了异常.行号“3”和行位置“9”.
但它运行平台目标x86没有抛出上述异常,但它抛出BadImageFormatException.
我工作的环境是:
Windows服务器2008,
.net framework 4.0,
oracle 11g(64位)
谁能告诉我怎么解决?
当您在64位Windows中运行应用程序时,它可以作为64位或32位运行.如果已将平台目标设置为x86,则它将以32位运行.如果您将平台目标设置为x64或Anycpu,它将以64位运行.
Oracle有不同版本的客户端,一个是32位,另一个是64位.因此,如果您的应用程序以32位模式运行,则需要确保安装了32位Oracle客户端.
关于对BadImageFormatException进行故障排除的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.Net 5 中的 ObjectDataProvider 抛出 System.BadImageFormatException、.net – CorFlags.exe,System.Data.SQLite.dll和BadImageFormatException、.net – 什么原因导致System.BadImageFormatException时构造System.Data.SQLite.SQLiteConnection、.net – 尝试加载Oracle客户端库引发了BadImageFormatException等相关内容,可以在本站寻找。
本文标签: