WinSXS-为什么要使用特定版本?

时间:2018-08-08 12:24:24

标签: windows assemblies winsxs

我有一个可执行文件,其中包含以下清单:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="amd64" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

因此应该搜索程序集的“ 6.0.0.0”版本。 寻找已安装的程序集-

C:\>dir C:\Windows\winsxs\Manifests\amd64_microsoft.windows.common-controls*
 Volume in drive C has no label.
 Volume Serial Number is DA28-1DA2

 Directory of C:\Windows\winsxs\Manifests

11/21/2010  06:15 AM             3,554 amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9.manifest
07/04/2013  04:35 PM             3,554 amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_a4d3b9377117c3df.manifest
04/24/2015  11:37 PM             3,554 amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_a4d981ff711297b6.manifest
07/04/2013  03:59 PM             3,554 amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.22376_none_a6ba9bf96e3dcd13.manifest
04/24/2015  09:47 PM             3,554 amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.23039_none_a6b7fbc96e401250.manifest
11/21/2010  06:16 AM             3,729 amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac.manifest
04/24/2015  11:40 PM             3,729 amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_fa3b1e3d17594757.manifest
04/24/2015  09:50 PM             3,729 amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.23039_none_e36d4d173100d4ed.manifest
               8 File(s)         28,957 bytes
               0 Dir(s)  21,516,130,392 bytes free

因此,没有确切的“ 6.0.0.0”,但我们有“ 6.0.7601.17514”,“ 6.0.7601.18837”和“ 6.0.7601.23039”。 使用Process Explorer观察正在运行的进程,我看到已加载以下DLL: C:\ Windows \ winsxs \ amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_fa3b1e3d17594757 \ comctl32.dll 既不是最低版本也不是最高版本。我也无法通过绑定重定向找到任何策略清单。 所以基本上我的问题是-为何加载器选择此版本而不选择另一个版本?

0 个答案:

没有答案