11

我在我的系统上构建的 Visual C++ 2005 使用 CRT DLL 版本 8.0.50727.4053。我相信它是最新的,并且由 Windows 自动更新。

在用户系统上,找不到此版本的 DLL。我过去曾使用 vcredist_x86.exe 作为安装程序的一部分来安装运行时 DLL。它曾经工作过。

我的问题是,即使是最新版本的 vcredist_x86.exe(Microsoft Visual C++ 2005 SP1 Redistributable Package (x86))也没有安装这个版本的 DLL。

那么我需要哪个 vcredist_x86.exe 文件呢?

PS 强制我的应用程序链接到特定版本的 CRT 会解决问题吗?它是一种首选方法吗?

谢谢,

保罗

更新:还有其他人观察到 vcredist_x86.exe(Microsoft Visual C++ 2005 SP1 Redistributable Package (x86))没有安装 8.0.50727.4053。

UPDATE2:至少有人建议强制使用以前版本的 CRT ( http://tedwvc.wordpress.com/ )。然而,这会给我们的项目增加很大的复杂性。

4

9 回答 9

3

根据 JesperE 的建议,我发现存在提供这些可分发文件的“Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL 安全更新” 。

于 2010-03-09T11:24:34.433 回答
3

我认为 VS 标准/专业用户和 VS Express 用户有一个重要的区别。对于 VC++ Standard,c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\ 包含 8.0.50727.4053 可再发行组件(安装安全更新后)。无需单独安装 SDK,因此(例如),我什至在安装了 VC++ Standard 的机器上都没有 C:\Program Files\Microsoft SDKs\ 目录。

使用 VS 2005 Express 时,请按照 mikets 的回答,获取 ATL 安全更新版本。我确认这些解决了我的问题。

于 2010-10-18T18:59:27.470 回答
2

好的。我在 MS 论坛中找到了解决方案:

如果您安装了安全更新,则 vcredist 的 9.0.30729.4148 版本应位于您的 Windows SDK 文件夹中,通常为 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86 和 C:\Program Files\ Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x64。

原始线程

于 2009-10-18T14:00:24.793 回答
1

Microsoft 发布了一个更新(Google for KB971090),其中包含 VC 运行时的安全修复。有相应的更新vcredist_x86.exe,但我没有链接。如果您安装了 KB971090,我认为您应该vcredist_x86.exe在机器上的某个位置进行更新。

在实践中(IIRC),这意味着在安装了 KB971090 的机器上构建的二进制文件只能在具有相应更新的 VC 运行时的机器上运行,即您需要vcredist_x86.exe在客户端机器上发布和安装新的。

于 2009-10-17T18:46:43.133 回答
1

我希望这可能是一个有用的信息:

您要查找的文件 (2.0.50727.4053) 的大小为 2.705.744 字节(磁盘上为 2.707.456 字节)。

于 2011-04-05T09:03:49.543 回答
0

在我的机器上,我发现 8.0.50727.4053 可在\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86

一个\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86用于VS2008。

-格雷格

于 2009-12-02T17:56:05.757 回答
0

看起来您可以使用 msiexec 直接安装 msm 文件,请参阅: http ://forums.winamp.com/showthread.php?s=&threadid=99668&highlight=msm

于 2013-06-11T15:09:33.910 回答
0

我的理解是微软还没有发布这个版本的vcredist_x86.exe。但是,他们确实使用此版本发布了合并模块,因此您应该下载它们并将它们包含在您的安装程序中。现在你从哪里得到这些也是一个好问题,但我不知何故神奇地得到了它们,可能是通过 InstallShield 更新。

于 2011-06-16T16:59:41.860 回答
0

注意:安装上面 mikets 提到的“Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL 安全更新”也可以解决以下问题:

启动 devenv.exe (Visual Studio 2005) 或 reader_sl.exe(Acrobat Reader 的自动启动)时出现错误 0xc0150004。

它修复了上述程序集的损坏安装的原因。(可能因安装 Windows 更新/服务包而损坏)。

于 2011-03-11T15:46:01.400 回答