2010-04-21 38 views
1

我的应用程序被编译开发PC上有一个清单762: 当清单使用762时,C++应用程序是否可能使用CRT 4053?

但是在运行时,另一版本的PC上,应用程序使用4053版本的文件。 C:\ WINDOWS \ winsxs文件\ x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989 \ MSVCR80.DLL

某处沿着我的应用程序的执行,我得到指着MSVCR80.DLL运行时错误。我怀疑这个问题可能是由于应用程序在运行时使用DLL而在构建过程中未使用的情况下引起的。

如果我检查发行版PC的WinSxS文件夹,我有CRT的762和4053版本。为什么应用程序使用4053而不是清单中使用的那个?

谢谢。

回答

1

由于重定向所请求的DLL版本的“发布者策略”。你的清单不应该再要求762了,它有cooties。您需要将security update部署到您的机器,以便vc \ include \ crtassem.h得到更新。

+0

可以使用策略文件中使用的相同bindingRedirect元素来安装应用程序配置文件。应用配置文件优先于发布者策略文件,因此如果发布者策略导致问题,您可以根据具体情况“修复”问题。但最终,请将补丁安装在开发PC上,并从源头解决问题。 – 2010-04-22 11:58:14

相关问题