更新:2007 年 11 月

当且仅当一个文件是托管文件并且在其元数据中包含程序集入口时,该文件才是一个程序集。有关程序集和元数据的更多信息,请参见主题 程序集清单

如何手动确定一个文件是否为程序集

  1. 启动 MSIL 反汇编程序 (Ildasm.exe)

  2. 加载希望测试的文件。

  3. 如果 ILDASM 报告该文件不是可移植的可执行 (PE) 文件,则它不是程序集。有关更多信息,请参见主题 如何:查看程序集内容

如何以编程方式确定一个文件是否为程序集

  1. 调用 GetAssemblyName 方法,并向其传递正在测试的文件的完整文件路径和名称。

  2. 如果引发 BadImageFormatException 异常,则该文件不是程序集。

示例

此示例测试一个 DLL 以确定它是否为程序集。

C# 复制代码
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

概念

参考

AssemblyName