2015-09-18 159 views
2

的Prolog用c#使用視覺工作室13 但有與此異常的問題: 類型「System.IO.FileNotFoundException」的未處理的異常出現在mscorlib.dll的Prolog用c#視覺工作室13

附加信息: 指定的模塊無法找到。 (異常來自HRESULT:0x8007007E)

using System; 
using SbsSW.SwiPlCs; 

    namespace ConsoleApplication35 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 

       Environment.SetEnvironmentVariable(@"D:\Prolog\swipl", @"D:\Prolog\swipl\boot"); 
       if (!PlEngine.IsInitialized) 
       { 
        String[] param = { "-q" }; 
        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!"); 
       } 
      } 
     } 
    } 

回答

3

我想你的意思是設置PATH環境變量,你的代碼需要改變如下:

var curPath = Environment.GetEnvironmentVariable("PATH"); 
Environment.SetEnvironmentVariable(@"PATH", @"D:\Prolog\swipl\boot;D:\Prolog\swipl;" + curPath); 
+0

那不覆蓋的全部內容路徑變量?對我來說,這似乎是一個壞主意。 – Derek

+0

我可能會嘗試獲取路徑變量,看它是否包含我的文件夾,如果它沒有,那麼我會用分號將它添加到末尾(分隔)。 – Derek

+0

@德里克是的,好主意 – thumbmunkeys