我正在使用我在KB2465367出现之前获得的第三方库。我的开发计算机已经更新了KB2465367,因此我生成的所有二进制文件现在似乎都依赖于CRT的8.0.50727.5592(CRT的2465367版本)。
现在,当我想部署这个应用程序时,我正在使用8.0 CRT合并模块(也由2465367更新)。这将安装8.0.50727.5592版本的MSVC库(如msvcrt80.dll)。
但是,当我在一台从未安装VC运行时的机器上运行我的应用程序时,它抱怨“此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。”我已经将其追溯到事件日志中的系统条目:“为C:\ Program Files \ MyCompany \ MyApp.exe生成激活上下文失败。参考错误消息:操作成功完成。”在源“SideBySide”下。
当然,这次更新基本上意味着我已经死在水中。
我如何从这里开始?我的客户是否需要在安装我的应用程序后安装8.0.50608.0版本的CRT 因为第三方库需要8.0.50608.0并且我使用的MSM不包含它?
在我的情况下,我正在使用How To: Install the Visual C++ Redistributable with your installer,它仅描述使用单个MSM。建议使用策略MSM来重定向依赖于旧版本运行时的任何DLL。 另请参阅http://lynk.at/jlqsKx
答案 0 :(得分:1)
当MS推出KB971090时,情况也是如此 一个简单的解决方案是删除KB2465367。
您可以在here.
上参考有关KB971090和KB2465367的更多信息答案 1 :(得分:0)
有uninitialized data bug in the patch可能导致DLL加载失败。
答案 2 :(得分:0)
您的安装程序必须使用两个合并模块:
可再发行软件包vcredist_xxx.exe
安装最新版本的库和策略文件。
您不能假设VC库在用户计算机上可用,因此您始终必须安装它们。否则您的应用程序将无法运行。