4

(我正在运行 Windows7 并使用 Visual Studio 2010。)

我在 .NET Azure 项目中使用 ClamAV,每当我运行 clamd.exe 时,我都会遇到并行错误,无论是通过我的代码还是通过自己运行 clamd.exe。

在 Visual Studio 2010 中,我收到错误消息:

Win32Exception was unhandled 应用程序无法启动,因为它的并排配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息

在事件查看器中,我得到:

“C:\Users\pconerly\code\AntiVirus_source\WorkerRole\clamav\clamd.exe”的激活上下文生成失败。相关程序集 Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195" 找不到。请使用 sxstrace.exe 进行详细诊断。

当我搜索“8.0.50727.6195”时,它把我带到了 2005 年的 redist,所以我下载了它 http://www.microsoft.com/download/en/details.aspx?id=3387

重新启动后,我仍然收到并排错误。此外,我认为 redist 安装程序没有完成它的安装 - 就像它看到 Visual Studio 2010 并说“哦,这已经足够好了,我不需要安装”。我没有尝试卸载 2010 并使用 2005,因为我的开发团队的其他成员正在使用 VS 2010。

这是怎么回事?如何解决这个问题?我准备拔掉我的头发。

4

3 回答 3

7

Timores 发布的链接是 Visual Studio 的更新。实际的可再发行包是这样的:

http://www.microsoft.com/en-us/download/details.aspx?id=26347

于 2013-02-03T17:13:23.057 回答
4

你提到的版本实际上是在这里找到的

Microsoft Visual Studio 2005 Service Pack 1 MFC 安全更新

于 2011-10-21T12:26:38.770 回答
3

Timores 是对的:redist 应该是这个,它与这个 KB 条目相关 如您所见,msvcr80.dll 已更新到版本 8.0.50727.6195。它是2005 C++ 运行时“ SP1 ”的“安全更新” 。您的 exe 可能需要(通过内部清单)该特定版本。

如果在系统上找不到它(搜索了很多地方),也没有在当前文件夹中找到它(除了合适的清单),它不会加载 exe,因为它无法“激活上下文”,即加载清单中所需的特定 DLL。

当我的系统更新(Windows 更新)并且新编译的 EXE 无法与放置在同一文件夹中的旧版本运行时一起工作时,我遇到了类似的问题。我必须更新 msvcr80.dll 及其清单(我在 \windows\winsxs 深处找到的)以使一切正常。

无论如何,上下文激活是一件棘手的事情:)

高温高压

于 2012-08-01T10:15:46.560 回答