前提条件が VC++ 8 から VC++ 10 SP1 に変更されたばかりの基本的な MSI プロジェクトがあります。これは、いくつかの 64 ビット コンポーネントを含む 32 ビット プログラムをインストールする 32 ビット インストーラーです。(インターネット監視に LSP を使用するため、32 ビットと 64 ビットの両方の LSP が必要で、両方の種類のアプリを監視できます。) したがって、32 ビットと 64 ビットの両方の VC++ ランタイムが必要です。 64 ビット システムで。
VC++ 8 マージ モジュールでは、WinSxs (サイド バイ サイド) フォルダーのため、これは問題ではありませんでした。MS がそれを放棄し、すべてのランタイムを C:\Windows\System32 に配置することに戻ったため、両方の VC++ 10 ランタイムを前提条件としてインストールしても、相互に上書きされるため機能しません。(おそらく、64 ビット ランタイム マージ モジュールが SysWow64 にリダイレクトされてはならないにもかかわらず、リダイレクトされているためです。)
これらの両方のランタイムをインストールする方法はありますか? x64 マージ モジュールの代わりにスタンドアロンの vcredist_x64 インストーラーを使用してもかまいませんが、起動しようとすると「別のインストール プロセスが実行中です」というエラーが表示されます。リダイレクトを一時的に無効にすることはできますか?
また、DLL がアプリケーションと同じフォルダーに配置されるフォルダー内ランタイム インストールについても考えましたが、LSP はシステム フォルダーに配置する必要があるため、そこに別のランタイム セットを配置することに神経質になりました。