在使用SWI Prolog的C#接口时无法找到或打开PDB文件消息

在使用SWI Prolog的C#接口时无法找到或打开PDB文件消息,c#,ffi,swi-prolog,C#,Ffi,Swi Prolog,我想使用C#接口来实现SWI Prolog。因此,我将SwiPlCs.dll添加到项目引用中,并设置SWI_HOME_DIR环境变量,但在中使用此示例测试应用程序时,出现以下错误: mscorlib.dll中发生类型为“System.IO.FileNotFoundException”的未处理异常 调试的输出显示: 线程0x1bec已退出,代码为259(0x103) “swicall.vshost.exe”(CLR v4.0.30319:swicall.vshost.exe):加载了“G:\tes

我想使用C#接口来实现SWI Prolog。因此,我将SwiPlCs.dll添加到项目引用中,并设置SWI_HOME_DIR环境变量,但在中使用此示例测试应用程序时,出现以下错误:

mscorlib.dll中发生类型为“System.IO.FileNotFoundException”的未处理异常

调试的输出显示:

线程0x1bec已退出,代码为259(0x103)

“swicall.vshost.exe”(CLR v4.0.30319:swicall.vshost.exe):加载了“G:\testingpro\MYAPP\swicall\bin\Debug\swicall.exe”。已加载符号

'swicall.vshost.exe'(CLR v4.0.30319:swicall.vshost.exe):加载'G:\testingpro\MyAPP\swicall\bin\Debug\SwiPlCs.dll'。找不到或无法打开PDB文件

mscorlib.dll中发生“System.IO.FileNotFoundException”类型的第一次意外异常

“swicall.vshost.exe”(CLR v4.0.30319:swicall.vshost.exe):加载了“C:\Windows\Microsoft.Net\assembly\GAC\U MSIL\System.Configuration\v4.0\U 4.0.0\U b03f5f7f11d50a3a\System.Configuration.dll”。已跳过加载符号。模块已优化,并且调试器选项“仅我的代码”已启用

如果我直接将swi prolog dll文件复制到我的应用程序中,但我的代码面临“找不到或无法打开PDB文件” “留言

如何修复此错误?

其他资料: OS:win8-64位vs:2013-32位SwipLC_1.1.60605.0 Swi prolog版本7.3.8
SetEnvironmentVariable(“SWI_HOME_DIR”,@“C:\Program Files(x86)\swipl”)

我也面临同样的问题。我从Microsoft站点安装了windows符号并解决了错误。现在示例代码工作正常。

您应该在swi prolog程序集引用上设置
Copy Local
,它将强制VS将引用的程序集复制到
bin\Debug
目录。找不到PDB错误-意味着调试器找不到与SWI prolog DLL相关联的
.PDB
文件(通常命名为类似DLL,但扩展名为
.PDB
)。PDB文件用作调试器来定位和显示源文件,例如,在未处理的异常情况下,如果使用外部库,您可能会忽略此错误。@csharpfolk:您应该在swi prolog程序集引用中设置“复制本地”,。。。我将SwiPlCs.dll添加到我的参考中,但我得到一个未处理的异常错误…好的,我能够重现您的问题,尝试将
C:\Program Files(x86)\swipl\bin
添加到系统
%PATH%
,重新启动计算机(这很重要),然后它应该可以工作。包装库试图使用WIN32
LoadLibrary
加载
libswipl.dll
,但找不到它,因此出现奇怪的错误消息。我设置了系统%PATH%,但没有任何运行错误,应用程序退出,调试输出为:“WindowsFormsApplication1.vshost.exe”(CLR v4.0.30319:WindowsFormsApplication1.vshost.exe):加载了“C:\Windows\Microsoft.Net\assembly\GAC\U 32\System.Data\v4.0\U 4.0.0.0\UU b77a5c561934e089\System.Data.dll”。找不到或无法打开PDB文件。'WindowsFormsApplication1.vshost.exe'(CLR v4.0.30319:WindowsFormsApplication1.vshost.exe):加载了“C:\Windows\Microsoft.Net\assembly\GAC\U MSIL\System.Deployment\v4.0.0.0\UU b03f5f7f11d50a3a\System.Deployment.dll”。找不到或无法打开PDB文件。好的,我明白了-您是否可以改为创建控制台应用程序,然后在不调试的情况下运行它,并检查它是否将任何内容写入标准输出(控制台)?