(我使用的是Windows7和Visual Studio 2010)
我在。net Azure项目中使用ClamAV,每当我运行clamd.exe时,我都会遇到并排错误,无论是通过我的代码还是通过自己运行clamd.exe。
在Visual Studio 2010中,我得到错误:
Win32Exception was unhandled应用程序启动失败因为它的并排配置是不正确的。请参阅应用程序事件日志或使用命令行sxstrace.exe工具获取更多细节
在事件查看器中,我得到:
激活上下文生成失败"C: 用户代码 pconerly AntiVirus_source 以 clamav clamd.exe"。相关的组装Microsoft.VC80.CRT processorArchitecture ="x86",都必须"1 fc8b3b9a1e18e3b类型="win32版本="8.0.50727.6195"找不到。详细诊断请使用sxstrace.exe。
当我搜索"8.0.50727.6195"时,它会引导我到2005年的版本,所以我下载了它http://www.microsoft.com/download/en/details.aspx?id=3387
重新启动后,我仍然得到并排错误。此外,我认为redist安装程序并没有完成它的安装——就像它看到visual studio 2010并说"哦,这已经足够好了,我不需要安装"。我没有尝试卸载2010并使用2005,因为我的开发团队的其余部分都在使用VS 2010。
怎么回事?如何解决这个问题?我准备拔头发了
Timores发布的链接是Visual Studio的更新。实际的可重新发布包如下:
http://www.microsoft.com/en-us/download/details.aspx?id=26347您提到的版本实际上在这里找到
Microsoft Visual Studio 2005 Service Pack 1 MFC安全更新
Timores是正确的:reddist应该是这个,它与这个KB条目相关如您所见,msvcr80.dll已更新到版本8.0.50727.6195。它是2005年c++运行时的"SP1"的"安全更新"。您的exe可能需要(通过内部清单)该特定版本。
如果它没有在系统上找到(有很多地方搜索),也没有在当前文件夹中(有一个合适的清单),它不会加载exe,因为它不能"激活上下文",也就是加载清单中所需的特定DLL。
当我的系统更新(windows更新)时,我也有类似的问题,新编译的exe不能与放置在同一文件夹中的旧版本运行时一起工作。我必须更新msvcr80.dll及其清单(我在windowswinsxs中找到的)才能使一切正常工作。
上下文激活是一个棘手的问题,无论如何:)
HTH