我有一个使用procdump创建的.NET框架应用程序的转储。我可以创建控制台.NET框架4.6.1应用程序,安装ClrMd nuget包,并编写以下代码来启动一些检查:
using(var dt = DataTarget.LoadCrashDump(@"C:\temp\dump.dmp"))
{
var rt = dt.ClrVersions.First().CreateRuntime();
Console.WriteLine(rt.ThreadPool.TotalThreads);
}它工作正常。
如果我用相同的转储文件做同样的事情,但是在dotnet core2.2控制台应用程序中,我会遇到异常Could not find matching DAC for this runtime。
为什么它在第一种情况下有效,但在第二种情况下不起作用?
发布于 2019-08-05 19:34:54
为了正确读取转储,ClrMD加载一个与创建转储的运行时版本匹配(或至少非常匹配)的mscordacwks.dll。由于dotnet核心与.NET框架不兼容,它无法加载此动态链接库。
https://stackoverflow.com/questions/56211531
复制相似问题