我可以获取网站引用的所有程序集吗

本文关键字:程序集 获取 网站 引用 我可以 | 更新日期: 2023-09-27 18:00:10

基本上,我想在MVC站点内的页面上打印一个列表,显示应用程序使用的所有程序集以及版本信息。

我不想只把它们包括在bin目录中,我想用一种更准确的方式。

例如

我想知道bin目录中的哪些dll正在被使用。对于其中的每一个,我都需要了解它们的依赖程序集是什么(以及它们的版本信息)。

我想知道哪些dll是从GAC等引用的。

我想要尽可能多的关于这方面的信息,所以像程序集期望的版本以及应用程序正在获取的版本这样的信息会很有用。

对此有什么标准方法吗?

谢谢,Martin

我可以获取网站引用的所有程序集吗

考虑使用BuildManager.GetReferencedAssemblies,它是

返回所有页面编译都必须引用的程序集引用的列表。

示例用法:

var assemblies = BuildManager.GetReferencedAssemblies().Cast<Assembly>();

还应注意此方法与AppDomain.GetAssemblies()之间的一个重要区别。BuildManager.GetReferencedAssemblies返回:

Web.config文件的assembly元素中指定的程序集、根据App_code目录中的自定义代码生成的程序集以及其他顶级文件夹中的程序集。

而CCD_ 4仅返回当前加载的程序集。

试试这个:

var assemblies = AppDomain.CurrentDomain.GetAssemblies();