Windows 7 mscoree.dll location and instances

Several books (Inside Windows Debugging [2012] by T. Soulami, Pro C # with .NET 3.0 by A. Troelsen) define the location of mscoree.dll as system32 . However, on my Windows 7 32-bit system, there are two instances of the mscoree.dll file in the following locations:

C:\Windows\winsxs\x86_netfx-mscoree_dll_31bf3856ad364e35_6.2.7600.16513_none_7daed23956119a9f
C:\Windows\winsxs\x86_netfx-mscoree_dll_31bf3856ad364e35_6.2.7601.17514_none_7f96335553371a30

      

Also, I was under the impression that there is (should be) only one version of this DLL used in the .NET bootstrap executable.

Thanks for the clarification.

+3


source to share


1 answer


Of course, this is a well hidden detail of the Windows implementation since Vista. The contents of your c: \ windows \ system32 directory are not a file, they are hard links that link to files side by side. Covered pretty well in this blog post aptly titled "Don't Trust All Your Eyes."

You can list the links using the utility fsutil.exe

. On my Windows 8.1 computer:



C:\Windows\System32>fsutil hardlink list mscoree.dll
\Windows\WinSxS\amd64_netfx-mscoree_dll_31bf3856ad364e35_6.3.9600.16384_none_a61e5c302a20ae78\mscoree.dll
\Windows\System32\mscoree.dll

      

There are multiple versions in your side-by-side cache because you received a .NET update that is possibly delivered via Windows Update. It keeps the old file, so you can uninstall the update.

+4


source







All Articles