0

我有一个解决方案,其中包含一个 C# 项目“库”和一个项目“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).
4

2 回答 2

0

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

如果是这种情况,您将无法完成这项工作,因为 64 位进程无法加载为 x86 显式编译的程序集(您得到了BadImageFormatException提及)。

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

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

于 2015-06-26T17:47:09.200 回答
0

一段时间后,我发现了问题。它是其中一个 dll 使用的一个方法,必须称为问题,因此需要识别 . 但是更换DLL,问题就解决了。

于 2015-08-04T13:29:08.153 回答