.net - 如何循环当前加载的程序集?

标签 .net assemblies

我的 ASP.NET 应用程序中有一个“诊断”页面,它可以执行诸如验证数据库连接、显示当前的 appSettings 和 ConnectionStrings 等操作。此页面的一部分显示重要的程序集版本整个过程中使用的类型,但我不知道如何有效地显示所有加载的程序集的版本。

找出 .NET 应用程序中所有当前引用和/或加载程序集的最有效方法是什么?

注意:我对基于文件的方法不感兴趣,例如迭代特定目录中的 *.dll。我对应用程序现在实际使用的内容感兴趣。

最佳答案

获取当前AppDomain加载的程序集:

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();

获取另一个程序集引用的程序集:

var referencedAssemblies = someAssembly.GetReferencedAssemblies();

请注意,如果程序集 A 引用程序集 B 并且程序集 A 已加载,这并不意味着程序集 B 也已加载。程序集 B 仅在需要时才会加载。因此,GetReferencedAssemblies() 返回 AssemblyName 实例,而不是 Assembly 实例。

关于.net - 如何循环当前加载的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383686/

相关文章:

c# - 为什么实例构造函数先运行?

.net - ORM 和构造函数

c# - CLR 在调用程序集中的任何方法之前调用的最早入口点是什么?

c# - Type.GetType() 和 Assembly.GetType() 返回不同的结果

.net - 在不重新构建的情况下更改程序集的 list

.net - 将角色分配给私有(private)应用程序中的客户端 key

c# - 在 .NET 中使用 Interlocked 类进行多线程处理的正确方法

c# - 可以为 CSharpCodeProvider 中的引用设置绝对路径吗?

.net - WPF 应用程序 : get 3rd party binaries from install on target machine

c# - NuGet 作为应用程序更新机制