1

次のコードからReflectionTypeLoadExceptionが発生しています。

var myAssembly = Assembly.LoadFrom(myDLL);    
var types = myAssembly.GetTypes())

myDLLは、別のアセンブリ内の別のファイル( "myDependency.dll")のクラスを参照します。
このファイルがアプリケーションディレクトリにあり、"myDLL"ファイルと同じフォルダーにあることを確認しました。

この場合、myDLLを正しくロードするにはどうすればよいですか?

4

3 に答える 3

1

電話してみます:

AssemblyName[] referenced = myAssembly.GetReferencedAssemblies();

次に、AssemblyNameオブジェクトを繰り返し処理し、それらをロードしてから呼び出します。myAssembly.GetTypes()

于 2012-06-08T20:31:03.903 に答える
1
  1. すべてのアセンブリ(参照されるアセンブリを含むdllおよびexe)が最新(プラットフォーム、構成、バージョン/ビルドの日付)であり、exeのディレクトリにあることを確認してください。

    これを検証するために、ビルドの前にすべてのプロジェクトのOBJおよびBINディレクトリを削除してみてください。

  2. GACに他のバージョンがないこと、または%PATH%にディレクトリがないことを確認してください。

于 2012-06-08T20:37:38.247 に答える
0

Visual Studio 2010によって引き起こされた愚かな「目が持続する」現象で金曜日の夜を台無しにしたことを発表できることを誇りに思います(私は推測します)。コピーしたばかり-DependencyDLLプロジェクトを新しいアセンブリ/プロジェクトに貼り付け、古いものを削除し、新しいDependencyDLLNewを指すように古い参照を更新し、Voilà:それでうまくいきました。問題が解決しました。助けてくれた人たちに感謝します。

于 2012-06-08T22:04:53.460 に答える