gpt4 book ai didi

c# - BadImageFormatException 故障排除

转载 作者:IT王子 更新时间:2023-10-29 03:36:34 28 4
gpt4 key购买 nike

我有一个使用 Visual Studio 2010 并以完整的 .NET Framework 4 为目标用 C# 编写的 Windows 服务。当我从调试版本运行时,该服务按预期运行。但是,当我从发布版本运行它时,我得到一个 System.BadImageFormatException(详情如下)。我一直在互联网上搜索解决方案,但到目前为止,我发现的所有内容都没有帮助我找到解决方案。

Windows 7 64 位(开发)和 Windows XP SP3 32 位(目标)系统均存在此问题。

到目前为止,这是我尝试过的:

  • 经过验证的build设置(例如 Platform Target)都是相同的 (x86)。
  • 使用带有/verbose 选项的 peverify 来确保程序集二进制文件有效。
  • 使用 fuslogvw 查找任何加载问题。
  • 使用 CheckAsm 查找丢失的文件或组合。

所有这些检查都没有改变任何东西。我在下面包含了异常信息的全文,其中一些名称已更改以保护我的公司主人的 secret 。

System.BadImageFormatException was unhandled  Message=Could not load file or assembly 'XxxDevices, 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.  Source=XxxDevicesService  FileName=XxxDevices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null  FusionLog=Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dllRunning under executable  c:\Dev\TeamE\bin\Release\XxxDevicesService.vshost.exe--- A detailed error log follows. === Pre-bind state information ===LOG: User = XXXLOG: DisplayName = XxxDevices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (Fully-specified)LOG: Appbase = file:///c:/Dev/TeamE/bin/Release/LOG: Initial PrivatePath = NULLCalling assembly : XxxDevicesService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.===LOG: This bind starts in default load context.LOG: Using application configuration file: c:\TeamE\bin\Release\XxxDevicesService.vshost.exe.ConfigLOG: Using host configuration file: LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).LOG: Attempting download of new URL file:///c:/TeamE/bin/Release/XxxDevices.DLL.ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.  StackTrace:       at XxxDevicesService.Program.Main(String[] args)       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)       at System.Threading.ThreadHelper.ThreadStart()  InnerException: 

最佳答案

Verified build settings such as Platform Target are all the same (x86).

这不是崩溃日志所说的:

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64

请注意名称中的 64,这是 64 位版本框架的所在地。在您的 EXE 项目而不是您的类库项目上设置目标平台设置。 XxxDevicesService EXE 项目决定了进程的位数。

关于c# - BadImageFormatException 故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996653/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com