2017-05-19 4 views
0

Je suis nouveau à la communauté. J'ai un problème majeur dans l'un de mes projets. Je suis à l'école mais c'est un projet personnel, les professeurs ne seront d'aucune aide. Je travaille avec Visual Studio en C#.dll pas dans mon fichier exécutable, travaillant en studio visuel, mais pas sur l'exécution

Dans mon projet, je reçois mails à partir d'un compte Gmail dédié spécifique dans POP3. J'utilise S22.POP3 parce que c'est un assemblage gratuit et fonctionne très bien avec ce que j'essaie de faire.

est donc ici mon problème: Quand j'utilise l'exécutable je reçois une erreur:

System.IO.FileNotFoundException 

L'erreur indique que le fichier ou l'assemblage est manquant.

Après beaucoup de recherche et d'essayer, je ne sais toujours pas quoi faire. J'ai levé les yeux sur le problème de l'interopérabilité de la référence, mais cela ne semble pas être le bon choix. Il crée des erreurs où j'utilise la classe de l'assembly. Puis j'ai regardé DllImport mais je suis assez inexpérimenté et je ne le comprends pas du tout. J'ai essayé quelque chose comme ceci:

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

Mais je ne comprends pas ce que je fais ici et il est assez évident que cela ne fonctionne pas. Je sais que je dois au moins mettre quelque chose après static extern mais je ne sais pas quoi? De toute façon ce n'est peut-être pas le chemin à parcourir.

J'ai aussi vu des gens parler ILMerge. Mais même problème ici je ne sais pas ce que je fais. De la documentation que j'ai trouvé c'est pour l'implémentation de C++.

S'il vous plaît aidez-moi, et si vous avez le temps, essayez de faire un exécutable qui est capable d'obtenir du courrier. Parce que dans Visual Studio, cela fonctionne très bien. Une fois un exécutable, j'ai l'erreur.

+0

vous pouvez facilement résoudre ce problème en ajoutant la référence au projet, puis cliquez sur ce .dll particulier et changer le '' CopyLocal = propriété de 'faux true' – MethodMan

Répondre

0

Vous n'avez pas besoin d'utiliser DllImport car cette bibliothèque est du code managé.

Utilisez simplement Nuget pour l'installer comme this. Ensuite, suivez le tutoriel de project page.

Voici le premier exemple:

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!"); 
      } 
     } 
    } 
}