2017-07-24 142 views
1

我有将Prolog连接到C#的问题。将Microsoft .NET(C#/ F#)与SWI-Prolog接口

Visual Studio中给出了这样的以下错误:

“类型 'System.IO.FileNotFoundException' 未处理的异常发生在SwiPlCs.dll”

,我真的不知道如何处理这个。

我觉得从我的代码给了路径传来:

using System; 
using SbsSW.SwiPlCs; 

namespace ptest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //Environment.SetEnvironmentVariable(@"C:\Program Files\swipl", @"C:\Program Files\swipl\boot64.prc"); // or boot64.prc 
      var curPath = Environment.GetEnvironmentVariable("C:\\Program Files\\swipl\\bin"); 
      Environment.SetEnvironmentVariable(@"C:\Program Files\swipl\bin", @"C:\Program Files\swipl\boot;C:\Program Files\swipl;" + curPath); 

      if (!PlEngine.IsInitialized) 
      { 

       String[] param = { "-q" }; // suppressing informational and banner messages 
       PlEngine.Initialize(param); 
       PlQuery.PlCall("assert(father(martin, inka))"); 
       PlQuery.PlCall("assert(father(uwe, gloria))"); 
       PlQuery.PlCall("assert(father(uwe, melanie))"); 
       PlQuery.PlCall("assert(father(uwe, ayala))"); 
       using (var q = new PlQuery("father(P, C), atomic_list_concat([P,' is_father_of ',C], L)")) 
       { 
        foreach (PlQueryVariables v in q.SolutionVariables) 
         Console.WriteLine(v["L"].ToString()); 

        Console.WriteLine("all children from uwe:"); 
        q.Variables["P"].Unify("uwe"); 
        foreach (PlQueryVariables v in q.SolutionVariables) 
         Console.WriteLine(v["C"].ToString()); 
       } 
       PlEngine.PlCleanup(); 
       Console.WriteLine("finshed!"); 
      } 
     } 
    } 
} 

请帮助我。非常感谢你。

+0

感兴趣的:[Swi-cs-pl-CSharp类库连接.NET语言与SWI-Prolog](http://www.lesta.de/prolog/swiplcs/Generated/ Index.aspx) –

+0

欢迎来到SO。当你问一个问题时,有助于提供更多的信息而不是更少的信息。 –

+0

注意:2014.04.29 13:00发布的[SwiPlCs_1.1.60605.0.zip](http://www.lesta.de/prolog/swiplcs/download/index.htm)的最新版本是beta版本。 –

回答