基本上,我想在我的MVC站点内的页面上打印一个列表,该列表显示应用程序使用的所有程序集以及版本信息。
我不想将这些内容包含在bin目录中,我想使用更准确的方法。
所以例子是
我想知道正在使用bin目录中的哪些dll。对于其中的每一个,我需要查看它们的依赖程序集(带有它们的版本信息)。
我想知道哪些dll是从GAC等引用的。
我希望尽可能多地提供相关信息,因此大会期待的版本信息以及应用程序的内容将会非常有用。
对此有什么标准方法吗?
谢谢, 马丁
答案 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();