Windows 7上mscoree.dll的位置和实例

时间:2015-01-12 11:51:56

标签: .net debugging windows-7

几本书( Inside Windows Debugging [2012] by T. Soulami,Pro C#with .NET 3.0 by A. Troelsen )指定 mscoree.dll 的位置作为 system32 文件夹。但是,在我的32位Windows 7系统上,mscoree.dll文件的两个实例位于以下位置:

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

此外,我的印象是(应该)只有一个版本的这个在PHP可执行引导过程中使用的填充程序DLL。

感谢您的解释。

1 个答案:

答案 0 :(得分:5)

当然,从Vista开始,这是一个隐藏得很好的Windows实现细节。 c:\ windows \ system32目录的内容不是文件,它们是硬链接,它们引用并排缓存中的文件。在this blog post中很好地涵盖了,恰如其分地标题为'#34;不要相信所有的眼睛都会告诉你"。

您可以列出fsutil.exe实用程序的链接。在我的Windows 8.1机器上:

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

您的并行缓存包含多个版本,因为您获得了.NET更新,可能是通过Windows Update提供的。它保留旧文件,以便您可以卸载更新。