C# 我可以获取网站引用的所有程序集吗
基本上,我希望在MVC站点内的页面上打印一个列表,其中显示应用程序使用的所有程序集以及版本信息 我不想只把它们包括在bin目录中,我想用一种更准确的方法 因此,可以举一些例子 我想知道正在使用bin目录中的哪个dll。对于其中的每一个,我需要了解它们的依赖程序集是什么(以及它们的版本信息) 我想知道哪些dll是从GAC引用的,等等 我希望尽可能多地了解这方面的信息,因此程序集期望的版本以及应用程序正在获取的内容等信息将非常有用 有没有标准的方法来解决这个问题 谢谢, Martin考虑使用以下方法: 返回所有页面编译必须引用的程序集引用列表 用法示例:C# 我可以获取网站引用的所有程序集吗,c#,asp.net,C#,Asp.net,基本上,我希望在MVC站点内的页面上打印一个列表,其中显示应用程序使用的所有程序集以及版本信息 我不想只把它们包括在bin目录中,我想用一种更准确的方法 因此,可以举一些例子 我想知道正在使用bin目录中的哪个dll。对于其中的每一个,我需要了解它们的依赖程序集是什么(以及它们的版本信息) 我想知道哪些dll是从GAC引用的,等等 我希望尽可能多地了解这方面的信息,因此程序集期望的版本以及应用程序正在获取的内容等信息将非常有用 有没有标准的方法来解决这个问题 谢谢, Martin考虑使用以下方法
var assemblies = BuildManager.GetReferencedAssemblies().Cast<Assembly>();
var assemblies=BuildManager.getReferencedAssemblys().Cast();
请注意此方法与AppDomain.GetAssemblies()
之间的一个重要区别<代码>BuildManager.GetReferencedAssembly返回:
在Web.config文件的assemblies元素中指定的程序集、从App_code目录中的自定义代码生成的程序集以及其他顶级文件夹中的程序集
而AppDomain.GetAssemblies()
只返回当前加载的程序集。尝试以下操作:
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
这也会返回被引用但来源于GAC的程序集。@Martin,是的。当然,最简单的方法是尝试:)我不同意你的看法,询问知道答案的人比构建和测试解决方案更简单、更容易。这样可以减少浪费时间。