2012-04-03 7 views
3

J'essaie d'utiliser OpenPop.NET pour accéder à un compte Gmail, mais je suis recevoir le message d'erreur ci-dessous même avec le code de test de base.C#: Impossible de charger le fichier ou l'assemblage 'OpenPop, Version = 2.0.4.369, Culture = neutre, PublicKeyToken = null' ou l'une de ses dépendances

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not load file or assembly 'OpenPop, Version=2.0.4.369, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. File name: 'OpenPop, Version=2.0.4.369, Culture=neutral, PublicKeyToken=null' at ST_1694f4bcdf2a4068ae871201a2216457.csproj.ScriptMain.Main()

WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

--- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

Je suis en train de le faire dans un package SSIS dans Business Intelligence Development SQL Server Management Studio 2008 sur une machine Windows 7 avec .NET Framework 3.5 et 4. Les deux dll OpenPop et la tâche de script qui référençant sont en cours de construction en 3.5. Je fais des recherches depuis quelques jours, mais je n'ai pas réussi à trouver quelque chose qui pourrait le réparer. J'ai essayé de recompiler la DLL OpenPop à partir de la source et de supprimer et de rajouter la référence plusieurs fois.

Le code Je travaille actuellement avec est affiché ci-dessous:

 Pop3Client client = new Pop3Client(); 

     try 
     { 
      client.Connect("pop.gmail.com", 995, true); 

      try 
      { 
       client.Authenticate("[email protected]", "mypassword"); 
       Console.WriteLine("Success"); 
       client.Disconnect(); 
      } 
      catch 
      { 
       Console.WriteLine("Failed to authenticate"); 
       Dts.TaskResult = (int)ScriptResults.Failure; 
       return; 
      } 
     } 
     catch 
     { 
      Console.WriteLine("Failed to connect"); 
      Dts.TaskResult = (int)ScriptResults.Failure; 
      return; 
     } 

     Dts.TaskResult = (int)ScriptResults.Success; 

Merci à l'avance.

Répondre

7

J'ai également rencontré ce problème et la solution est en fait assez simple. Vous devez installer l'assembly référencé dans le GAC du serveur sur lequel vous exécutez le package.

1) Vérifiez que l'assemblage est signé, si vous avez créé votre propre assemblage, signez-le.

2) Installez la DLL sur le GAC en utilisant gacutil.exe à partir des outils SDK de Visual Studio. Pour plus d'informations, voir How to: Install an Assembly into the Global Assembly Cache.

3) référencent la même DLL de votre tâche de script

Voila, il devrait fonctionner parfaitement maintenant!

+0

note: Gacutil.exe est seulement pour le développement fins et ne doit pas être utilisé pour installer des assemblys de production dans le cache de l'assembly global. – toha

1

Installation de votre DLL à GAC (mémoire cache de montage global)

1) Invite Visual Studio Command => Exécuter en tant Adminstrator

2) gacutil/i "chemin du fichier dll"

3) voir montage sur C: \ Windows \ system32 \

Il va également résoudre dll manquants ou « Impossible de charger le fichier ou l'assemblage » dans la tâche SSIS Script

Questions connexes

 Questions connexes