Using SOS in a dump with .NET 2 (mscorwks) and .NET 4 (clr)

前端 未结 2 1464
甜味超标
甜味超标 2021-01-13 11:22

I have a dump which has both .NET versions loaded:

0:000> lm m clr
start    end        module name
65490000 65aff000   clr        (deferred)             
         


        
2条回答
  •  一整个雨季
    2021-01-13 12:09

    This is a very ugly problem and afaik there is no simple solution for it. The core issue is that your customer uses a different revision of the CLR than you do. With some odds, given the wildly different revision numbers, that you've got .NET 4.5 installed and the customer is using .NET 4.0. But just a security patch can be enough to cause a mismatch, they've been coming in steadily of late.

    Afaik you are pretty much stuck setting up a VM or machine that uses the exact same revision as your customer uses.

    The in-process side-by-side CLR feature in .NET 4 can otherwise explain how you could end up with two CLR versions in one process. The v2.0 version would typically be there to implement a COM server. Something you avoid by adding a reference to the [ComVisible] .NET assembly instead. Albeit that it may well not be your code that does this. Good luck with it, not a nice problem to have.

提交回复
热议问题