繁体   English   中英

编译为x64并收到System.BadImageFormatException

[英]Compile to x64 and received System.BadImageFormatException

我有一个解决方案,其中包含一个C#项目“ library”和一个项目“ JavaScript”,编译后生成一个.winmd文件,该文件将被带到另一个项目。 但是这个项目是基于x86构建的,我需要针对x64进行编译,才能运行应用程序,以便x64得到以下错误:

'WWAHost.exe' (Script): Loaded 'Script Code (MSAppHost/2.0)'. 
Unhandled exception at line 25, column 13 in ms-appx://2c341884-5957-41b1-bb32-10e13dd434ba/js/default.js
0x8007000b - JavaScript runtime error: An attempt was made to load a program with an incorrect format.
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at System.Runtime.InteropServices.WindowsRuntime.ManagedActivationFactory.ActivateInstance()
WinRT information: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at System.Runtime.InteropServices.WindowsRuntime.ManagedActivationFactory.ActivateInstance()
The program '[5776] WWAHost.exe' has exited with code -1 (0xffffffff).

如果我理解正确,那么“库”项目是专门针对x86编译的,而您正在从以x64为目标的javascript项目中使用它?

如果真是这样,您将无法使此工作,因为64位进程无法显式加载针对x86编译的程序集(您会看到提到的BadImageFormatException )。

您可以选择以x86模式编译Javascript项目,该项目将在WoW上运行,但是我不确定这与winmd文件有什么关系。

最好的选择是,如果您可以访问“库”项目代码,则可以将其编译为“任何CPU”,以便供任意运行的进程使用。

一段时间后,我发现了问题。 它是使用过的dll之一,它具有一种必须称为问题的方法,因此需要进行识别。 但是替换DLL后,问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM