问题标签 [badimageformatexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
787 浏览

c# - 在 C# 中使用 D DLL 时出现 BadImageFormatException

因此,作为一个实验,我决定尝试找出是否可以在 C# 中使用 D DLL。我做了一些谷歌搜索,找到了这个线程。我复制(键入,而不是 C&P)在 C# 的第 4 篇文章中为该类提供的代码DString,并使用此处的 DllMain() 代码。

我的 D 代码:

以及我在 C# 中导入的实际函数:

像这样导入函数 helloWorld():

这一切都编译得很好,D 或 C# 编译器都没有错误,但是每当我尝试运行程序(有或没有调试器)时,它都会崩溃。使用调试器时,它给了我以下错误:

BadImageFormatException was unhandled
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

任何人都可以了解正在发生的事情,以及我该如何解决它?

0 投票
8 回答
116310 浏览

c# - 该模块应包含程序集清单

我在 c# 中有一个使用 c++ 库和一些 dll 的项目。当我运行它时,它工作得很好。

该库是Awesomium,包含 c++ 库和 c# 包装器

当我从我的 ASP.NET MVC 4 项目创建对该项目的引用时,我收到以下错误:

异常详细信息:System.BadImageFormatException:无法加载文件或程序集 'file:///D:\Projects\Development\ProGamers\GamingSite\bin\avcodec-52.dll' 或其依赖项之一。该模块应包含程序集清单。

我尝试过的事情:

  1. 处理 dll,但它仍然不起作用(文件存在)。

  2. 在 GAC 中注册它,但我在那里遇到了同样的错误。

  3. 确保使用 .NET Framework 4.0(而不是客户端配置文件)

  4. 2 个具有相同 dll/exe 名称的文件导致冲突- 我没有。

  5. 将解决方案的平台更改为 AnyCPU/Mixed Platforms。

堆栈跟踪:

0 投票
1 回答
644 浏览

.net - 使用命令行参数将 .NET 4.0 定位到 msbuild 后出现 BadImageFormatException

我有一个应用程序和一个它所依赖的 dll,在他们的 csproj 文件中已将其设置为目标 .NET 3.5。我们正在尝试通过/p:TargetFrameworkVersion=v4.0作为命令行参数传入 msbuild(使用 NAnt)来构建这两个项目以面向 .NET 4.0。构建成功,但运行程序立即崩溃并出现 BadImageFormatException -“此程序集由比当前加载的运行时更新的运行时构建,无法加载”

使用 .NET 反射器,我检查了输出 exe 和 dll 的所有引用 - 一切都引用 .NET 4.0 dll;没有引用 .NET 2;然而我的调试器告诉我 mscorlib 2.0.50727.4971 已经加载。

将项目本身更改为面向 .NET 4,然后在 Visual Studio 中构建工作正常 - 没有问题。

我有点卡在这里,因为我不知道下一个调查步骤可能是什么。我不知道它为什么要加载那个版本的 mscorlib。

0 投票
1 回答
455 浏览

visual-studio-2010 - C# Assembly.LoadFrom 抛出 BadImageFormatException

在其中一个项目中,我正在使用该Assembly.LoadFrom函数将 .net DLL 中的代码动态加载到完全受信任的程序集中。到目前为止,这一直是 100% 没有问题的。

我现在有一个用 /clr:pure 编译的 Visual C++ DLL,需要使用上面的Assembly.LoadFrom. 当我这样做时,我得到了 BadImageFormatException,这真的很奇怪。

在 Visual C++ 项目中有 3 种类型的 CLR 编译选项:

/clr

/clr:纯

/clr:安全

根据给我的说明,它需要在 /clr:pure 下编译。我的问题是使用 /clr:pure 抛出异常。如果我将其更改为 /clr 它也会引发异常。如果我将其更改为 /clr:safe 它会加载而不会引发异常(这是我的测试结束的地方)。

所以我想这真的是一个两部分的问题:

1) 为什么 /clr:safe 可以工作,而其他两个不行?

2) 如何让它与 /clr 一起工作?

提前致谢!

0 投票
0 回答
284 浏览

silverlight - Silverlight - C++ dll 错误图像格式异常

我有一个从 C++ 项目构建的 dll。我在 Silverlight 项目中间接引用了该 dll(我的意思是,Web 项目引用了一个 C# 项目,而 C# 项目又使用了这个 dll)。现在每次我构建我的 Silverlight 应用程序时,我都会得到这个

我的silverlight web 项目引用其他C# 项目没有任何问题。如果我删除对 C++ dll 的引用,一切似乎都很好。

我厌倦了各种选​​择两种不同的东西

  1. 我用 32 位和 64 位构建了 c++ dll,但错误没有变化
  2. 我在构建 c++ dll 时将 .net 配置文件更改为客户端版本,但仍然没有变化

(我在 Silverlight 5 上)

有人可以帮助我了解发生了什么吗?

谢谢K

0 投票
1 回答
546 浏览

c# - 从 C#(64 位)加载 C++ 类库

我有一个 C++ 类库和一个使用该库的 C# 中的 Windows 应用程序。

它适用于 32 位 Windows,但不适用于 64 位 Windows -BadImageFormatException发生。

我试图改变C++类库的平台,但是它不能从WIN32改为WIN64。

我认为以下问题之一可以解决这个问题。

  1. 有没有办法将 WIN32 库转换为 WIN64 库?
  2. 是否有另一种方法可以在不使用 C++ 库的情况下在 C# 上调用 C++ 函数?
  3. 是否可以在 64 位应用程序中加载 WIN32 库?
0 投票
1 回答
3760 浏览

64-bit - 在 x64 上的 IIS 中出现 BadImageFormatException

我正在使用 Windows 7 x64。启动 MVC 应用程序时出现 BadImageFormatException。如果它在启用了 32 位应用程序的应用程序池中运行,则不会引发异常。看起来加载 global.asax 是个问题。我启用了融合日志记录 (HKLM\software\Microsft\Fusion!EnableLog) 注册表设置。这是日志:

使用不同的构建配置,结果如下:

构建 x64、32 位应用程序池 false:错误

构建 x86,32 位应用程序池错误:错误

构建 AnyCPU,32 位应用程序池 false:错误

构建 x64、32 位应用程序池 true:错误

构建 x86,32 位应用程序池 true:OK

构建 AnyCPU,32 位应用程序池 true:OK

IIS 快递:好的

如何找到 64 位配置中使用的 32 位问题 dll?

0 投票
1 回答
1891 浏览

c# - opencv_imgproc.dll 抛出 BadImageFormatException

我正在使用 Emgu CV(用于 x64)构建图像处理应用程序,并且我想对图像使用过滤功能。所以,我使用opencv_imgproc.dll但它抛出 BadImageFormatException

0 投票
1 回答
867 浏览

c# - System.BadImageFormatException 这是什么意思?

可能重复:
尝试使用 installutil.exe 安装服务时出现 System.BadImageFormatException “invalid format”

当我安装我的 Windows 服务应用程序时,我收到以下异常:

错误 1001。初始化安装时发生异常:System.BadImageFormatException:无法加载文件或程序集.....file.exe 或其依赖项之一。试图加载格式不正确的程序。

0 投票
1 回答
1579 浏览

.net - 在 64 位计算机上定位“AnyCPU”时出现 BadImageFormatException

当我将源代码转移到Win7 64-bit机器上BadImageFormatException时,我会在尝试编译和运行解决方案时得到一个 target AnyCPU

这不会发生在XP 32-bit.

问题是什么?