方法 : ファイルがアセンブリであるかどうかを確認する (C# プログラミング ガイド)
更新 : 2007 年 11 月
ファイルが管理されていて、そのメタデータにアセンブリ エントリが含まれている場合に限り、そのファイルはアセンブリです。アセンブリとメタデータの詳細については、「アセンブリ マニフェスト」を参照してください。
ファイルがアセンブリであるかどうかを手動で確認するには
MSIL 逆アセンブラ (Ildasm.exe) を起動します。
テストするファイルを読み込みます。
ILDASM で、そのファイルがポータブル実行可能 (PE) ファイルではないと報告された場合、そのファイルはアセンブリでありません。詳細については、「方法 : アセンブリの内容を表示する」を参照してください。
ファイルがアセンブリであるかどうかをプログラムによって確認するには
GetAssemblyName メソッドを呼び出し、テストするファイルの完全パスと名前を渡します。
BadImageFormatException 例外がスローされた場合、ファイルはアセンブリでありません。
使用例
次の例では、DLL がアセンブリであるかどうかをテストして確認します。
class TestAssembly
{
static void Main()
{
try
{
System.Reflection.AssemblyName testAssembly =
System.Reflection.AssemblyName.GetAssemblyName(@"C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll");
System.Console.WriteLine("Yes, the file is an Assembly.");
}
catch (System.IO.FileNotFoundException)
{
System.Console.WriteLine("The file cannot be found.");
}
catch (System.BadImageFormatException)
{
System.Console.WriteLine("The file is not an Assembly.");
}
catch (System.IO.FileLoadException)
{
System.Console.WriteLine("The Assembly has already been loaded.");
}
}
}
/* Output (with .NET Framework 3.5 installed):
Yes, the file is an Assembly.
*/
GetAssemblyName メソッドはテスト ファイルを読み込み、情報が読み取られた時点で解放します。
参照
処理手順
例外のトラブルシューティング : System.BadImageFormatException