如何:确定文件是否为程序集(C# 编程指南)
更新:2007 年 11 月
当且仅当一个文件是托管文件并且在其元数据中包含程序集入口时,该文件才是一个程序集。有关程序集和元数据的更多信息,请参见主题 程序集清单。
如何手动确定一个文件是否为程序集
加载希望测试的文件。
如果 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