Windbg:加载程序集的版本

发布于 2024-10-19 00:58:27 字数 225 浏览 5 评论 0 原文

如果我有完整的内存转储,有人知道如何找出加载的程序集的程序集版本(而不是文件版本)吗? 假设我有 .net 进程的完整转储,并且发现一个 AppDomain 中加载了两个同名的程序集。我需要知道这些程序集有哪些版本。 SOS 命令 !dumpmodule!dumpassemble!dumpdomain 不提供此类信息,或者我只是错过了一些信息。

先感谢您。

does anybody know how to figure out the assembly versions (not file versions) of loaded assemblies if I have a full memory dump?
Suppose I have a full dump of the .net process and I found two assemblies with the same name loaded in one AppDomain. I need to know what versions those assemblies have.
The SOS commands !dumpmodule, !dumpassembly and !dumpdomain do not provide that kind of information or I just missed something.

Thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴意少年 2024-10-26 00:58:27

您可以尝试 !SaveModule SOS 命令。这将获取程序集的起始地址并创建一个新文件(其名称由您指定)来保存程序集的内容。然后,您可以使用 .NET Refletor 之类的工具打开该文件,它可能会在其中的某个位置为您提供 .NET 版本。这个问题有一些细节:

如何找出可执行文件需要运行哪个版本的 .NET Framework?

至于 !SaveModule 命令,这里有一篇博客文章介绍了如何使用它:

http://blogs.msdn.com/b/苔丝/archive/2006/05/18/601002.aspx?PageIndex=2

You could try the !SaveModule SOS command. This takes the start address of an assembly and creates a new file (the name of which is given by you) to save the contents of the assembly. You could then use something like .NET Refletor to open the file, and it might give you the .NET version somewhere in there. This SO question has some details on that:

How to find out which version of the .NET Framework an executable needs to run?

As for the !SaveModule command, here's a blog article that describes how to use it:

http://blogs.msdn.com/b/tess/archive/2006/05/18/601002.aspx?PageIndex=2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文