Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C#与Prolog集成-获得“a”;System.BadImageFormatException“;尽管目标平台设置为x86,但仍存在异常_C#_Prolog - Fatal编程技术网

将C#与Prolog集成-获得“a”;System.BadImageFormatException“;尽管目标平台设置为x86,但仍存在异常

将C#与Prolog集成-获得“a”;System.BadImageFormatException“;尽管目标平台设置为x86,但仍存在异常,c#,prolog,C#,Prolog,我有一个大学项目涉及到将Prolog与C#集成,所以我下载了swiplcsdll并将其与我的项目链接起来 我在Main()method中有以下几行代码: Environment.SetEnvironmentVariable("PATH", @"E:\\swipl\\bin"); string[] p = { "-q", "-f", @"test.pl" }; PlEngine.Initialize(p); 当我运行程序时,出现异常,并显示以下消息: An unhandled exception

我有一个大学项目涉及到将Prolog与C#集成,所以我下载了swiplcsdll并将其与我的项目链接起来

我在
Main()
method中有以下几行代码:

Environment.SetEnvironmentVariable("PATH", @"E:\\swipl\\bin");
string[] p = { "-q", "-f", @"test.pl" };
PlEngine.Initialize(p);
当我运行程序时,出现异常,并显示以下消息:

An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll

Additional information:  is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
我花了所有时间阅读有关堆栈溢出的相关问题,人们建议将平台目标更改为x86,这正是我所做的,但没有任何效果,我仍然得到相同的异常


这个问题有什么解决方案吗?

你看到了吗?如果你能用你所采取的确切步骤更新你的问题,这样我们就可以重新创建这个问题了,这会有所帮助。当我说精确时,我的意思是它需要包括构建链中每个工具的版本、配置、列表等。我希望看到这里列出的几页详细信息。如果你需要帮助,你就必须帮助那些帮助你的人。没有多少人可以在这方面帮助你,如果你让他们很难得到帮助,你获得帮助的机会会很快下降。我看到当.NET运行时无法加载为不同版本的.NET CLR生成的内容时,会引发BadImageFormatException。SwiPlCs的CSPROJ文件指定了.NET2.0的构建目标,所以我对此表示怀疑。你可能需要为.NET 2.2.0重新规划你的程序。另一个可能考虑的是,因为它使用p/Unjk,所以必须为同一架构编译C代码(32位x86 vs 64位x64)。作为它通过P/Invoke调用的代码。自从我问这个问题一年半以来,除了在大学里的旧计算机上试用它之外,我什么都没用。我仍然不明白为什么它在我的计算机上不起作用可能是因为DLL是一个原生的x86 DLL,C#可能需要一个.NET CLR DLL(not CLR不是本机代码,但仍可放入DLL或EXE)