我不是很有经验。只是试图对其他人编写的源代码进行一些更改。
我必须添加对 .dll 的引用才能使其在“发布”模式下工作。但是,当我尝试让它在调试中工作时,它不起作用。(未加载程序集参考)。
帮助?
我不是很有经验。只是试图对其他人编写的源代码进行一些更改。
我必须添加对 .dll 的引用才能使其在“发布”模式下工作。但是,当我尝试让它在调试中工作时,它不起作用。(未加载程序集参考)。
帮助?
看起来 Chillkat 点网实际上是一个混合模式程序集,很可能您还需要适当的 c 运行时。此处记录了此异常和解决此问题的方法
希望这可以帮助。
通常,当可执行文件是 x86 并且它引用的 dll 是 x64 时,我会收到此错误。检查您的构建配置以确保它针对正确的平台。
在 VS2013 中,转到构建 -> 配置管理器。新窗口的左上角应该有一个下拉菜单,其中包含不同的构建模式。将调试与发布进行比较。
BadImageFormatException 是当您尝试在另一个平台上加载为特定平台编译的程序集时从执行引擎引发的一个异常。
示例 A
- project A, compiled as X86
- project B, compiled as X86
- executable, compiled in X86
在 x86 机器和 x64 操作系统中一切正常
示例 B
- project A, compiled as X86
- project B, compiled as X86
- executable, compiled in AnyCPU
在 x86 操作系统中一切正常这在 x64 操作系统中抛出异常(可执行文件在 AnyCPU 中,因此它在 x64 引擎上运行,因此无法加载 x86 dll)
示例 C
- project A, compiled as AnyCPU
- project B, compiled as x86
- executable, compiled in AnyCPU
在 x86 操作系统中一切正常这在 x64 操作系统中抛出异常(可执行文件在 AnyCPU 中,因此它在 x64 引擎上运行,因此无法加载 x86 dll)
示例 D
- project A, compiled as AnyCPU
- project B, compiled as x86
- executable, compiled in x86
在 x86 操作系统中一切正常 在 x64 操作系统中一切正常 exe 是专门为 x86 平台编译的,因此在 x64 机器上也可以在 x86 模式下运行。
结论
Visual Studio 在 OS 配置中运行项目,因此在调试模式下,如果您没有特定的 x86 配置来启动项目并尝试执行 x86 引用的 dll,它将失败