別のコンピューターからの dll の読み込みに問題があります。ステーションからは問題なくロードされますが、Visual Studio がインストールされていない別のシステムからテストしようとすると、次の例外が発生します。
日付 - 2012 年 5 月 10 日 12:01:48.0725000 - 呼び出しのターゲットによって例外がスローされました。日付 - 2012 年 5 月 10 日 12:01:48.0881250 - System.IO.FileNotFoundException: ファイルまたはアセンブリを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 'System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' at ZENNLNGLIB.Process.ReadConfigFile() at ZENNLNGLIB.Process.ProcessFile(String fileName)
アセンブリ マネージャーの読み込み元: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 実行可能ファイルの下で実行 C:\Documents and Settings\Administrator\Desktop\NLNG.Encryption\NLNG.Encryption\bin\Debug\NLNG .Encryption.exe --- 詳細なエラー ログが続きます。
=== バインド前の状態情報 === LOG: User = WS001ITS106\Administrator LOG: DisplayName = System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 (完全指定) LOG: Appbase = file:///C:/Documents and Settings/Administrator/Desktop/NLNG.Encryption/NLNG.Encryption/bin/Debug/ LOG: Initial PrivatePath = NULL Calling assembly : ZENNLNGLIB, Version=1.0.0.0, Culture=neutral, PublicKeyToken =ヌル。=== ログ: このバインドは LoadFrom ロード コンテキストで開始されます。WRN: ネイティブ イメージは LoadFrom コンテキストではプローブされません。ネイティブ イメージは、Assembly.Load() のように、既定の読み込みコンテキストでのみプローブされます。ログ: アプリケーション構成ファイルが見つかりません。ログ: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config のマシン構成ファイルを使用しています。ログ:ポリシー後の参照: System.Xml.Linq、Version=3.5.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089 ログ: 新しい URL ファイルのダウンロードを試行しています:///C:/Documents and Settings/Administrator/Desktop/NLNG.Encryption /NLNG.Encryption/bin/Debug/System.Xml.Linq.DL L. LOG: Attempting download of new URL file:///C:/Documents and Settings/Administrator/Desktop/NLNG.Encryption/NLNG.Encryption/bin /Debug/System.Xml.Linq/System.Xml.Linq.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Documents and Settings/Administrator/Desktop/NLNG.Encryption/NLNG.Encryption/bin/Debug/System.Xml.Linq.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Documents and Settings/Administrator/Desktop/NLNG.Encryption/NLNG.Encryption/bin/Debug/System.Xml.Linq/System.Xml.Linq.EXE. LOG: 新しい URL file:///C のダウンロードを試みています: /zennlnglib/System.Xml.Linq.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/zennlnglib/System.Xml.Linq/System.Xml.Linq.DLL。ログ: 新しい URL ファイル:///C:/zennlnglib/System.Xml.Linq.EXE のダウンロードを試みています。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/zennlnglib/System.Xml.Linq/System.Xml.Linq.EXE.
これは私が自分のdllをロードする方法です:
Assembly u = Assembly.LoadFrom(@"C:\test\test.dll");
Type t = u.GetType("Test.Process");
MethodInfo m = t.GetMethod("ProcessFile");
try
{
object[] myparam = new object[1];
myparam[0] = @"C:\test\testFile.csv";
result = (string)m.Invoke(null, myparam);
Console.WriteLine(result);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
Console.WriteLine(ex.InnerException.ToString());
System.Threading.Thread.Sleep(100000);
}