有沒有人知道如何找出加載程序集的程序集版本(而不是文件版本),如果我有完整的內存轉儲? 假設我有一個完整的.net進程轉儲,並且我發現在一個AppDomain中加載了兩個具有相同名稱的程序集。我需要知道這些程序集有什麼版本。 SOS命令!dumpmodule,!dumpassembly and !dumpdomain不提供這種信息或我只是錯過了一些東西。windbg:加載程序集的版本
預先感謝您。
有沒有人知道如何找出加載程序集的程序集版本(而不是文件版本),如果我有完整的內存轉儲? 假設我有一個完整的.net進程轉儲,並且我發現在一個AppDomain中加載了兩個具有相同名稱的程序集。我需要知道這些程序集有什麼版本。 SOS命令!dumpmodule,!dumpassembly and !dumpdomain不提供這種信息或我只是錯過了一些東西。windbg:加載程序集的版本
預先感謝您。
您可以嘗試!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
感謝傑森!這不是理想的,但它的工作原理。再次感謝! – 2011-02-28 16:37:19
@AC - 是的,要做到這一點有點痛苦,但我很高興它適合你。 – 2011-03-01 13:18:10