【发布时间】:2010-04-07 22:15:44
【问题描述】:
我正在 VS2008 中构建一个 ActiveX 控件安装程序,它使用 CRT 和 MFC 合并模块进行安装。当我的控件尝试在 Windows 7 上注册时失败。
Dependency Walker 说我在尝试注册我的控件并且安装失败时缺少 mfc90u.dll、msvcr90.dll 和 msvcp90.dll 依赖项。合并模块是否应该处理这个问题?我的输出 OCX 正在使用 vsdrpCOMSelfReg 选项进行注册。从我在其他论坛上阅读的内容来看,这可能不是最好的方法,此时我应该尝试什么?
在 Windows XP 上可以正常安装。
2010 年 4 月 8 日更新:
更改为 vsdrpCOM 并且安装成功(不足为奇),但是之后找不到 msvcr90.dll。我认为这是由 CRT (microsoft_vc90_crt_x86.msm) 的合并模块处理的?在 Windows XP 上,Dependency Walker 在 Windows/System32 中找到它,而不是像我预期的那样在 SxS 文件夹中。在 Windows 7 上,它根本找不到它。我应该自己将 msvcr90.dll 放入 Windows/System32 吗?好像不是。
2010 年 4 月 20 日更新:
看起来 Dependency Walker 似乎在控件本身的顶级依赖项中找到了 msvcr90.dll,尽管 msvcp90.dll 和 mfc90u.dll 都对 msvcr90.dll 也有隐式/转发的依赖项,而那些不可能在 Dependency Walker 中解决。但是,该控件可以正常注册并运行加载这些库。这是可以忽略的吗?
【问题讨论】:
标签: dll windows-7 installation merge-module