【问题标题】:Windows Side-by-side assembly default version (msvcr90.dll)Windows 并行程序集默认版本 (msvcr90.dll)
【发布时间】:2017-02-27 09:03:50
【问题描述】:

程序集的默认版本存储在哪里?

当我运行 python.exe(2.6 或 2.7)并使用 Process Explorer 检查它时,我看到它加载了最新版本的 msvcr90.dll(我的 PC 上的 9.0.30729.9247)。 Python 有一个内部清单,它指定了 msvcr90.dll 的 9.0.21022.8 版本,但仍会加载较新的版本。 Python 2.6 有一个 Microsoft.VC90.CRT.manifest 文件,该文件也指定 9.0.21022.8,但始终加载较新的版本。

使用进程监视器我可以在加载 msvcr90.dll 时看到所有其他实例,并且它们都使用 9.0.30729.9247。

我的电脑必须在某个地方告诉所有这些程序使用较新版本,但我似乎无法找到在哪里。我的 WinSxS 文件夹中有许多版本的 microsoft.vc90.crt。

如果我无法更改默认版本,有什么方法可以“降级”我的 microsoft.vc90.crt?到看起来更标准的版本(9.0.30729.6161)

附言。我不知道我的 microsoft.vc90.crt 版本 9.0.30729.9247 来自哪里

【问题讨论】:

  • 这是由于“Microsoft.VC90.CRT”程序集的发布者配置文件中的bindingRedirect。在%SystemRoot%\WinSxS\Manifests 中查找“*policy.9.0.microsoft.vc90.crt*9.0.30729.9247*.manifest”。
  • 您是否因正在加载较新版本的 DLL 而遇到任何特定的错误行为?
  • 我只能通过更改注册表值来使其工作,如下面我接受的答案中所述。到目前为止,我还没有遇到任何不良行为(至少没有什么明显的),但我确信在某个阶段会出现问题(需要新版本的程序)。

标签: python windows visual-studio dll winsxs


【解决方案1】:

在注册表中指定了默认的 Windows 并行程序集版本

对于 microsoft.vc90.crt,版本在以下位置指定:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners\x86_policy.9.0.microsoft.vc90.crt_

根据需要将默认版本改回旧版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多