我正在 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 具有隐式/转发的依赖项,并且这些无法在依赖沃克。但是,该控件可以正常注册并运行加载这些库。这是可以忽略的事情吗?