2012-04-03 9 views
3

私は私がしかし、GmailアカウントにアクセスするためにOpenPop.NETを使用しようとしています基本的なテストコードでも以下のエラーメッセージが表示されます。私は、.NET Framework 3.5と4 OpenPop dllの両方と、それを参照しているスクリプトタスクでのWindows 7マシン上でSQL Serverのビジネスインテリジェンス開発Studio 2008でSSISパッケージでこれを行うにしようとしていますC#の:ファイルまたはアセンブリをロードできませんでした「OpenPop、バージョン= 2.0.4.369、ニュートラル文化=、PublicKeyToken = = null」またはその依存関係の1つ

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()

3.5に組み込まれています。私はこれを数日間研究していますが、それを修正できるものは何も見つかりませんでした。私は、複数回の供給源からOpenPop DLLを再コンパイルし、除去及び再添加参照しようとしています。

私は現在で働いていたコードを以下に掲載されています

 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; 

は、事前にありがとうございます。

答えて

7

アイブ氏もこの問題が発生し、解決策は、実際には非常に簡単です。パッケージを実行しているサーバーのGACに参照アセンブリをインストールする必要があります。

1)独自のアセンブリを作成した場合、それに署名し、アセンブリが署名されていることを確認します。

2)Visual StudioのSDKツールのgacutil.exeを使用してDLLをGACにインストールします。詳細はHow to: Install an Assembly into the Global Assembly Cacheを参照してください。

3)あなたのスクリプトタスク

出来上がりから同じDLLを参照し、それは今完璧に動作するはずです! GAC(グローバルアセンブリキャッシュ)に自分のDLLをインストール

+0

注意「ファイルまたはアセンブリをロードできませんでした」:Gacutil.exeをは開発用ですプロダクションアセンブリをグローバルアセンブリキャッシュにインストールするためには使用しないでください。 – toha

1

1)のVisual Studioコマンドプロンプト] => Adminstrator

として

2を実行します)ます。gacutil/i "のDLLファイルパス"

3)を参照してくださいアセンブリCに:\ WINDOWS \ SYSTEM32 \

また、不足しているDLLを解決するか、SSISスクリプトタスクで

関連する問題

 関連する問題