使用COM服务器的并排错误,安装了C ++可再发行组件

时间:2012-01-11 22:48:08

标签: com visual-studio-2005 windows-7-x64 side-by-side

我有一个尴尬的情况,我有一个必须在x64应用程序中使用的32位lib。为了解决这个问题,我创建了一个COM服务器应用程序来处理32位和64位进程之间的通信。

所有内容都是在Windows 7上的VS2005中构建的,版本为8.0.50727.867。我注意到的一件事是我的版本与SP1 redist版本(8.0.50727.762)不匹配。我认为这是由于VS2005的Vista更新,因为我找不到更新版本的redist。

它适用于我的开发机器,但它不在我的Win7 x64机器上。因此错误是:

  

“C:\ Program Files \ ScanScope \ Controller \ ACBarOmniServer.exe”的激活上下文生成失败。无法找到依赖程序集Microsoft.VC80.CRT,processorArchitecture =“x86”,publicKeyToken =“1fc8b3b9a1e18e3b”,type =“win32”,version =“8.0.50727.6195”。请使用sxstrace.exe进行详细诊断。

在此之前,我安装了VS2005 C ++可再发行组件包。我再次尝试安装它,没有运气。我翻遍了我的Winsxs文件夹,果然,版本丢失了。

当我从here运行redist安装程序时,我在sxs文件夹中获得了以下版本的CRT:

  • 8.0.50727.42
  • 8.0.50727.762
  • 8.0.50727.4053
  • 8.0.50727.4940

当然,我需要版本8.0.50727.6195

我已经设置了静态链接的所有内容(即/ MT,静态链接到MFC,没有到ATL的链接),但其他东西依赖于C运行时的动态版本。

我使用sxstrace没有运气。我启动跟踪,启动我的程序,获取错误,结束跟踪,并将其解析为另一个文件。解析后的文件完全为空。

值得注意的一件事;当我在Win7盒子上运行redist安装程序时,它会在一两秒内完成并消失。现在,我确实看到它安装在添加/删除程序中,它确实将文件夹添加到sxs文件夹中,但这让我感到奇怪。

如果有任何人有这种帮助的经验,将不胜感激。如果您需要我遗漏的任何信息,请告诉我。

1 个答案:

答案 0 :(得分:4)

找到正确的可再发行补丁here

这是发送给VS2005用户的更新,但不是普通大众。 叹气,哦,好吧。