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

时间:2014-04-25 10:32:30

标签: c# asp.net

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

我不想将这些内容包含在bin目录中,我想使用更准确的方法。

所以例子是

我想知道正在使用bin目录中的哪些dll。对于其中的每一个,我需要查看它们的依赖程序集(带有它们的版本信息)。

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

我希望尽可能多地提供相关信息,因此大会期待的版本信息以及应用程序的内容将会非常有用。

对此有什么标准方法吗?

谢谢, 马丁

2 个答案:

答案 0 :(得分:5)

考虑使用BuildManager.GetReferencedAssemblies

  

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

使用示例:

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

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

  

在Web.config文件的assemblies元素中指定的程序集,从App_Code目录中的自定义代码构建的程序集,以及其他顶级文件夹中的程序集。

AppDomain.GetAssemblies()仅返回当前加载的程序集。

答案 1 :(得分:0)

试试这个:

var assemblies = AppDomain.CurrentDomain.GetAssemblies();