【问题标题】:Windows SxS Redistributable Version IssueWindows SxS 可再发行版本问题
【发布时间】:2013-10-14 19:03:48
【问题描述】:

我有一个程序拒绝在某些 Windows 7 机器上运行。使用 sxstrace,可执行文件声称需要 Microsoft.VC80.CRT/MFC 版本 8.0.50727.6195 和 8.0.50608.0。见下文。

> INFO: Parsing Manifest File C:\Program Files
> (x86)\PFPS\falcon\fvw.exe.   INFO: Manifest Definition Identity is
> (null).   INFO: Reference:
> Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195"
> INFO: Reference:
> Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195"
> INFO: Reference:
> Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"
> INFO: Reference:
> Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"
> INFO: Resolving reference
> Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195".
> INFO: Resolving reference for ProcessorArchitecture WOW64.
>     INFO: Resolving reference for culture Neutral.
>       INFO: Applying Binding Policy.
>         INFO: No publisher policy found.
>         INFO: No binding policy redirect found.
>       INFO: Begin assembly probing.
>         INFO: Did not find the assembly in WinSxS.
>         INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.6195__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
>         INFO: Did not find manifest for culture Neutral.
>       INFO: End assembly probing.   INFO: Resolving reference for ProcessorArchitecture x86.
>     INFO: Resolving reference for culture Neutral.
>       INFO: Applying Binding Policy.
>         INFO: Find publisher policy at C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4940_none_516d712b0f495a45.manifest
>         INFO: No binding policy redirect found.
>       INFO: Begin assembly probing.
>         INFO: Did not find the assembly in WinSxS.
>         INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.6195__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
>         INFO: Attempt to probe manifest at C:\Program Files (x86)\PFPS\falcon\Microsoft.VC80.CRT.DLL.
>         INFO: Attempt to probe manifest at C:\Program Files (x86)\PFPS\falcon\Microsoft.VC80.CRT.MANIFEST.
>         INFO: Attempt to probe manifest at C:\Program Files (x86)\PFPS\falcon\Microsoft.VC80.CRT\Microsoft.VC80.CRT.DLL.
>         INFO: Attempt to probe manifest at C:\Program Files (x86)\PFPS\falcon\Microsoft.VC80.CRT\Microsoft.VC80.CRT.MANIFEST.
>         INFO: Did not find manifest for culture Neutral.
>       INFO: End assembly probing.   ERROR: Cannot resolve reference Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195".
> ERROR: Activation Context generation failed. End Activation Context
> Generation.

使用mt.exe 向我展示了相同的版本要求。

希望不相关,但我能够让它运行的唯一机器安装了 Visual Studio。

我按照 Hans Passant 在this question 的评论中建议的那样做,这导致我安装了 x86 版本的this

在安装新的可再发行组件之前,我拥有以下内容:

Microsoft Visual C++ 2005 Redistributable - KB2467175 version 8.0.51011
Microsoft Visual C++ 2005 Redistributable (x64) version 8.0.61000
Microsoft Visual C++ 2005 Redistributable (x64) - KB2467175 version 8.0.51011

安装假定的 8.0.50727.6195 可再发行组件后,我最终得到:

Microsoft Visual C++ 2005 Redistributable version 8.0.61001
Microsoft Visual C++ 2005 Redistributable (x64) version 8.0.61000
Microsoft Visual C++ 2005 Redistributable (x64) - KB2467175 version 8.0.51011

我预计“之后”部分的顶行是 8.0.50727.6195。我显然错过了一些东西。有人可以指出我正确的方向吗?我是不是连续 3 次得到错误的链接?

另外,INFO: Find publisher policy at C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4940_none_516d712b0f495a45.manifest 行是什么意思?是不是也依赖8.0.5727.4940?

【问题讨论】:

    标签: windows-7 msvcrt redistributable winsxs


    【解决方案1】:

    8.0.50727.6195 是此安全更新。确保已安装:

    MS11-025:Visual C++ 2005 SP1 Redistributable Package 安全更新说明:2011 年 6 月 14 日

    http://support.microsoft.com/kb/2538242

    【讨论】:

    • 哦。我没有意识到这只是一个补丁,而不是整个可再分发的。我按照您的指示安装了补丁,但“程序和功能”对话框中的版本号没有更改。应用程序现在启动。我仍然想了解为什么它可以在没有显示正确版本的情况下工作,但这是一个好的开始。
    • 对于那些不了解它的人(比如 20 分钟前的我),您可以通过 catalog.update.microsoft.com 获取单独的 Microsoft 安全更新二进制文件。
    • 您也可以通过microsoft.com/en-au/download/details.aspx?id=26347获取此更新
    最近更新 更多