C++ 有可能吗?当清单使用 762 时应用程序使用 CRT 4053?
我的应用程序是在开发 PC 上编译的,清单为 762:
但是,在运行时,在另一台 PC 上,应用程序使用该文件的 4053 版本。 c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCR80.DLL
在执行我的应用程序时,我收到一个指向 msvcr80.dll 的运行时错误。我怀疑该问题可能是由于应用程序在运行时使用了构建期间未使用的 DLL 造成的。
如果我检查发行版 PC 的 WinSxS 文件夹,我会同时拥有 762 和 4053 版本的 CRT。为什么应用程序使用 4053 而不是清单中使用的?
谢谢。
My application is compiled on a development PC with a manifest 762:
However at runtime, on another release PC, the application uses the 4053 version of the file.
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCR80.DLL
Somewhere along the execution of my application I get a runtime error pointing to the msvcr80.dll. I suspect that the problem might be caused because the application use a DLL at runtime that was not used during the build.
If I check in the WinSxS folder of the release PC I have both 762 and 4053 version of the CRT. Why does the application uses 4053 instead of the one used in the manifest?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于“发布者策略”重定向所请求的 DLL 版本。你的清单不应再要求 762,它有虱子。您需要部署 安全更新到您的计算机,以便更新 vc\include\crtasem.h。
Because of a "publisher policy" that redirects requested DLL versions. Your manifest should not ask for 762 anymore, it's got cooties. You'll need to deploy the security update to your machine so the vc\include\crtassem.h gets updated.