(我正在运行Windows7并使用Visual Studio 2010。)
我在.NET Azure项目中使用ClamAV,每当我运行clamd.exe时,无论是通过我的代码还是通过运行clamd.exe,我都会遇到并行错误。
在Visual Studio 2010中,我收到错误:
Win32Exception未处理应用程序无法启动 因为它的并排配置不正确。请看看 应用程序事件日志或使用命令行sxstrace.exe工具 更多细节
在事件查看器中,我得到:
激活上下文生成失败 “C:\用户\ pconerly \代码\ AntiVirus_source \ WorkerRole \ clamav的\ clamd.exe”。 附属大会 Microsoft.VC80.CRT,ProcessorArchitecture用于= “86” 公钥= “1fc8b3b9a1e18e3b”,类型= “Win32的”,版本= “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。
这笔交易是什么?怎么解决这个问题?我已准备好拔出头发了。
答案 0 :(得分:7)
Timores发布的链接是Visual Studio的更新。实际的可再发行组件包括:
http://www.microsoft.com/en-us/download/details.aspx?id=26347
答案 1 :(得分:4)
你提到的版本实际上是在这里找到的
Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update
答案 2 :(得分:2)
Timores是对的:redist应为this one,与this KB entry相关 正如您在那里看到的,msvcr80.dll已更新至8.0.50727.6195版。 它是2005 C ++运行时的“ SP1 ”的“安全更新”。 您的exe可能需要(通过内部清单)特定版本。
如果在系统上找不到(搜索到很多地方),也没有在当前文件夹中找到(除了合适的清单),它将不会加载exe,因为它无法“激活上下文” ,即加载清单中所需的特定DLL。
当我的系统更新(Windows更新)时,我遇到了类似的问题,并且新编译的EXE不能与放在同一文件夹上的旧版本运行时一起使用。 我不得不更新msvcr80.dll及其清单(我在\ windows \ winsxs深处找到)以使一切正常。
无论如何,上下文激活是一个棘手的问题:)
HTH