Visual Studio可再发行组件&并排/ DependentAssembly错误

时间:2011-08-25 00:56:13

标签: visual-studio-2010 sxs

(我正在运行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。

这笔交易是什么?怎么解决这个问题?我已准备好拔出头发了。

3 个答案:

答案 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

相关问题