如果我有完整的内存转储,有人知道如何找出已加载程序集的程序集版本(不是文件版本)吗? 假设我有一个完整的.net进程转储,我发现在一个 AppDomain 中加载了两个同名的程序集。我需要知道这些组件有哪些版本。 SOS命令!dumpmodule ,!dumpassembly 和!dumpdomain 不提供这种信息,或者我只是遗漏了一些东西。
提前谢谢。
答案 0 :(得分:2)
您可以尝试!SaveModule
SOS命令。这将获取程序集的起始地址并创建一个新文件(其名称由您提供)以保存程序集的内容。然后,您可以使用.NET Refletor之类的东西来打开文件,它可能会在那里的某处提供.NET版本。这个问题有一些细节:
How to find out which version of the .NET Framework an executable needs to run?
至于!SaveModule命令,这是一篇描述如何使用它的博客文章:
http://blogs.msdn.com/b/tess/archive/2006/05/18/601002.aspx?PageIndex=2