重複の可能性:
DLL がマネージ アセンブリかネイティブかを判断する方法 (ネイティブ dll の読み込みを防止する)?
この DLL はマネージですか、それともアンマネージですか?
私のシナリオ: 多数の DLL リソースを C++ から C# マネージ コードに移動するプロセスを開始しています。これらの DLL は共通のディレクトリに存在する必要があり、静的にリンク (参照) されません。代わりに、必要に応じて Assembly.LoadFile() を使用してロードされます。
どれが新しい (マネージ) DLL であるかを判断するために、FileInfo オブジェクトの配列を使用してディレクトリ内のファイルをループし、それぞれについてアセンブリをロードしようとしています。
もちろん、DLL がアンマネージ C++ DLL の 1 つである場合、アセンブリを読み込もうとすると失敗します。
そこで私の質問は、リフレクションなどを使用して DLL ファイルを検査し、マネージド/アンマネージドの性質を判断できるかどうかです。