3

多数のdlls. 特定の を参照するものをすべて見つける必要がありますdll

私は次の解決策を考えています:

  1. アセンブリをループし、それぞれを呼び出すildasm
  2. manifestをテキストファイルにダンプします
  3. 必要なアセンブリ名のテキスト ファイルを検索します。

しかし、この解決策は私にとって非常に間違っていると感じています。それを達成するためのより良い方法はありますか?

4

4 に答える 4

12

リフレクションを使用して参照アセンブリを見つける、その目的のための小さなツールを作成できます。

string[] fileNames = ...; // get all the filenames
foreach (string fileName in fileNames) {
    var assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(fileName);
    var referencedAssemblies = assembly.GetReferencedAssemblies();

    foreach (var assemblyName in referencedAssemblies) {
        // do your comparison
    }
}
于 2013-12-25T10:27:10.417 に答える
0

IlSpy.exe をダウンロードし、参照したいアセンブリを開くと、参照されているすべてのアセンブリが一覧表示されます。

https://github.com/icsharpcode/ILSpy/releases

于 2019-05-26T16:33:35.700 に答える
0

Microsoft のドキュメントによると、nn AppDomain.CurrentDomain.GetAssemblies() このアプリケーション ドメインの実行コンテキストに読み込まれたアセンブリを取得します。AppDomain.CurrentDomain.GetAssemblies() について

必要なアセンブリをロードする戦略を、appdomain の使用からアプリケーション フォルダー内の dll の検索に変更する必要があるようです。

ここで同様の問題に関する議論を見つけました

于 2013-12-25T10:48:01.127 に答える