如果我有完整的内存转储,有人知道如何找出加载程序集的程序集版本(不是文件版本)吗?假设我有一个完整的 .net 进程转储,并且我发现在一个AppDomain中加载了两个同名的程序集。我需要知道这些程序集有哪些版本。SOS 命令!dumpmodule、!dumpassembly和!dumpdomain没有提供那种信息,或者我只是错过了一些东西。
先感谢您。
你可以试试!SaveModule
SOS 命令。这将获取程序集的起始地址并创建一个新文件(名称由您指定)以保存程序集的内容。然后,您可以使用 .NET Refletor 之类的工具打开文件,它可能会在其中的某个位置为您提供 .NET 版本。这个 SO question 有一些细节:
如何找出可执行文件需要运行的 .NET Framework 版本?
至于 !SaveModule 命令,这里有一篇博客文章描述了如何使用它:
http://blogs.msdn.com/b/tess/archive/2006/05/18/601002.aspx?PageIndex=2