【发布时间】:2012-08-20 23:34:00
【问题描述】:
我有一个依赖于 MSVCR90.dll 的程序,我将它与主要可执行文件一起提供:
ProgramFolder\Main.exe
ProgramFolder\MSVCR90.dll
我想知道我提供的新更新何时可用(例如修复安全问题)是否会优先于System32 或SxS 中的更新文件。
有没有办法以编程方式知道正在使用哪个版本的 C 运行时?
【问题讨论】:
-
根据this blog post,您可以在注册表中查看产品代码。
-
VerQueryValue,搜索FileVersion似乎是一个合理的可能性。至于什么优先:我很确定这将取决于您安装的位置/方式,也可能取决于您的清单。 -
不能将 msvcr90.dll 部署在与 exe 相同的目录下,启动时会出现运行时错误。它必须部署在并行缓存中。从而确保安全更新。
-
不提供 DLL,提供 MSVC 可再发行组件的安装程序,然后将其作为安装过程的一部分运行,或者如果您没有安装程序,请让用户手动运行。跨度>