BadImageFormatException Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format

僤鯓⒐⒋嵵緔 提交于 2019-11-30 23:05:39
Fernando Gonzalez Sanchez

As mentioned already it is due to wrong architecture either a) Using x64 assembly with Windows x86 b) Using x86 assembly with x64 process or viceversa

For best results, ensure all .NET assemblies are built with "Any CPU", and same .NET profile (ie all using .NET Core, or Client Profile or Full .NET).

...or one dependency not being found at all, Enable Fusion Log to tell where is looking to gather the assemblies:

See How to enable assembly bind failure logging (Fusion) in .NET and http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

UPDATE: Given the error code 0x8007000b I am pretty sure is an architecture mismatch: a) The dll may be Full .NET code, but not compiled with AnyCPU b) The dll may be native code, and then you need a matching architecture (plus some calling its code using PInvoke) c) The dll may be C++ CLI (mix of native/.NET code, again with wrong architecture). d) The dll may be corrupt.

You may need to contact the 3rd party provider for support. Also, this link mentions it could be a mismatch of .NET version.

Anyway, looks like the problem is narrowed.

Also if the DLL is partly native, it may need the MSVC runtime (as this question's answers mentions, Using 32-bit dll on 64-bit system shows 0x8007000B Error)

In that case the problem would be a dependency of dcasdk not being found. You can check which Dependency Walker, see http://www.dependencywalker.com/ (it also has a profile mode where you profile an exe, and see the call to open a dll which failed at runtime).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!