Localização e instâncias do mscoree.dll no Windows 7

Alguns livros (no interior do Windows Debugging[2012] por T. Soulami, Pro C# com.NET 3.0 por A. Troelsen ) especificam a localização de mscoree.dll Como Sendo a pasta system32. No entanto, no meu sistema Windows 7 de 32 bits, existemduas instâncias do mscoree.ficheiro dll, nos seguintes locais:

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

Além disso, eu tinha a impressão de que há (deveria haver) apenas uma versão deste Shim DLL usado no. NET executável bootstrap processo.

Agradecia uma explicação.

Author: Sabuncu, 2015-01-12

1 answers

Claro, este é um detalhe de implementação bem escondido do Windows, começando no Vista. O conteúdo do seu c:\windows\system32 diretório não são Arquivos, eles são ligações duras que Arquivos de referência na cache lado a lado. Coberto bastante bem em este post no blog , apropriadamente intitulado "Don't trust all your eyes tell you".

Você pode listar as ligações com o utilitário fsutil.exe. Na minha máquina do 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

A sua 'cache' side-by-side contém mais do que uma versão porque você tem uma atualização. net, provavelmente entregue através do Windows Update. Ele mantém o arquivo antigo ao redor para que você possa desinstalar a atualização.

 4
Author: Hans Passant, 2015-01-12 14:54:56