2017-05-19 57 views
0

我是新來的社區。我的項目中有一個主要問題。我在學校,但這是一個個人項目,所以老師不會有任何幫助。 我在C#中使用Visual Studio工作。dll不在我的可執行文件中,在visual studio中工作但不在執行中

在我的項目中,我從POP3中的特定專用Gmail帳戶收到郵件。我使用S22.POP3是因爲它是一個免費的程序集,並且與我正在嘗試做的事情非常吻合。

因此,這裏是我的問題:當我使用的可執行文件我得到一個錯誤:

System.IO.FileNotFoundException 

錯誤說,文件或組件丟失。

經過大量的搜索和嘗試,我仍然不知道該怎麼做。我查了一下關於參照的適當性的互操作性的東西,但它似乎不是要走的路。它在我使用程序集中的類時會產生一些錯誤。 然後,我擡頭看DllImport,但我很缺乏經驗,我根本不理解它。我試過這樣的事情:

[DllImport("S22.Pop3.dll")] 
static extern 

但我不明白我在這裏做什麼,它很明顯,它不起作用。我知道我至少需要把東西放在static extern之後,但我不知道是什麼?無論如何,這可能不是要走的路。

我也見過一些人在談論ILMerge。但同樣的問題,我不知道我在做什麼。從我發現它是用於實現C++的文檔。

請幫助我,如果您有時間,請嘗試執行能夠獲取郵件的可執行文件。因爲在Visual Studio中它工作正常。一旦可執行文件出現錯誤。

+0

你可以很容易地通過將參照項目解決這個問題,然後在那個特定的.dll和'CopyLocal ='財產'false變更爲TRUE' – MethodMan

回答

0

由於此庫是託管代碼,因此不需要使用DllImport

只需使用Nuget安裝它就像this

然後按照project page的教程進行操作。

這是第一個例子:

using System; 
using S22.Pop3; 

namespace Test { 
    class Program { 
     static void Main(string[] args) { 
      /* connect on port 995 using SSL */ 
      using (Pop3Client Client = new Pop3Client("pop.gmail.com", 995, true)) 
      { 
       Console.WriteLine("We are connected!"); 
      } 
     } 
    } 
} 
相關問題