多数のdlls
. 特定の を参照するものをすべて見つける必要がありますdll
。
私は次の解決策を考えています:
- アセンブリをループし、それぞれを呼び出す
ildasm
manifest
をテキストファイルにダンプします- 必要なアセンブリ名のテキスト ファイルを検索します。
しかし、この解決策は私にとって非常に間違っていると感じています。それを達成するためのより良い方法はありますか?
多数のdlls
. 特定の を参照するものをすべて見つける必要がありますdll
。
私は次の解決策を考えています:
ildasm
manifest
をテキストファイルにダンプしますしかし、この解決策は私にとって非常に間違っていると感じています。それを達成するためのより良い方法はありますか?
リフレクションを使用して参照アセンブリを見つける、その目的のための小さなツールを作成できます。
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
}
}
IlSpy.exe をダウンロードし、参照したいアセンブリを開くと、参照されているすべてのアセンブリが一覧表示されます。
Microsoft のドキュメントによると、nn AppDomain.CurrentDomain.GetAssemblies() このアプリケーション ドメインの実行コンテキストに読み込まれたアセンブリを取得します。AppDomain.CurrentDomain.GetAssemblies() について
必要なアセンブリをロードする戦略を、appdomain の使用からアプリケーション フォルダー内の dll の検索に変更する必要があるようです。
ここで同様の問題に関する議論を見つけました