CRT と MFC の両方のマージ モジュールを使用してインストールする VS2008 で ActiveX コントロール インストーラーを構築しています。コントロールが 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 は、予想どおり SxS フォルダーではなく、Windows/System32 でそれを見つけます。Windows 7 では、まったく検出されません。msvcr90.dll を自分で Windows/System32 に入れる必要がありますか? それはそうではないようです。
2010 年 4 月 20 日更新:
msvcp90.dll と mfc90u.dll はどちらも msvcr90.dll に暗黙的/転送された依存関係を持ち、それらは依存ウォーカー。ただし、コントロールは正常に登録され、それらのライブラリのロードを実行します。これは無視できるものですか?