如何:确定文件是否为程序集(C# 编程指南) - C# 编程指南

返回介绍

如何:确定文件是否为程序集(C# 编程指南)

发布于 2019-11-12 字数1846 浏览 833 评论 0

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

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

  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

概念

C# 编程指南

参考

程序集和全局程序集缓存(C# 编程指南)AssemblyName

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!