2014-04-25 38 views
4

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

我不想只包含那些在bin目录中,我想用更准确的方式。

因此例子是

我想知道哪些DLL的bin目录中被使用。对于每个这些,我需要看看他们的依赖程序集是什么(以及他们的版本信息)。

我想知道哪些DLL的从GAC引用等

我想在此尽可能多的信息,所以像什么版本的组件期待,什么应用正在加速将信息有用。

是否有任何标准的方法呢?

感谢, 马丁

回答

5

考虑使用BuildManager.GetReferencedAssemblies其中:

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

实例:

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

还要注意这种方法和AppDomain.GetAssemblies()之间的重要区别。 BuildManager.GetReferencedAssemblies回报:在Web.config文件中的组件元素指定

组件,组件从自定义代码在App_Code目录生成,并在其他顶层文件夹组件。

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

+0

会,这也返回引用但从GAC货源组件。 – Martin

+0

@马丁,是的。当然最简单的方法就是试试:) –

+0

我恳求不同的是,问问知道答案的人比创建和测试解决方案要容易得多。减少浪费的时间。 – Martin

0

试试这个:

var assemblies = AppDomain.CurrentDomain.GetAssemblies(); 
相关问题