c# - 如何列出所有加载的程序集?

标签 c# .net assemblies

在 .Net 中,我想枚举所有 AppDomain 上的所有已加载程序集。为我的程序的 AppDomain 执行此操作非常简单 AppDomain.CurrentDomain.GetAssemblies()。我是否需要以某种方式访问​​每个 AppDomain?或者是否已经有执行此操作的工具?

最佳答案

使用 Visual Studio

  1. 将调试器附加到进程(例如从调试开始或调试 > 附加到进程)
  2. 调试时,显示模块窗口(调试 > 窗口 > 模块)

这提供了有关每个程序集、应用程序域的详细信息,并提供了一些加载符号的选项(即包含调试信息的 pdb 文件)。

enter image description here

使用进程浏览器

如果你想要一个外部工具,你可以使用 Process Explorer (免费软件,由 Microsoft 发布)

单击一个进程,它将显示一个包含所有使用的程序集的列表。该工具非常好,因为它显示了其他信息,例如文件句柄等。

以编程方式

检查 this SO解释如何做的问题。

关于c# - 如何列出所有加载的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/458362/

相关文章:

c# - 具有通用代码隐藏的 WPF UserControl

C# 无法绑定(bind)到目标方法

c# - 从 Quartz.NET 作业执行调用异步方法的最佳实践是什么?

c# - 为什么方法缺乏凝聚力(LCOM)包括getters和setters

c# - .NET 引用源代码中的四个破折号组是什么?

windows-phone-7 - 如何从 WP7 中的 Stream 或 byte[] 加载程序集?

c# - 如何保护我的程序集不被其他人使用?

c# - C# 中的强化学习

c# - 如果类型相同,Array.ToArray<>() 是否返回原始数组?

.net - 在 VS2012 中找不到 Microsoft.Office.Interop 程序集