1

前提条件が 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 はシステム フォルダーに配置する必要があるため、そこに別のランタイム セットを配置することに神経質になりました。

4

1 に答える 1

1

一度に 2 つの MSI (MSI と vc_redist_x64) を実行することはできません。そのため、エラーが発生します。また、メインの MSI が x86 であるため、x86 と x64 のマージ モジュールを 1 つのインストールで使用することはできません。
ブートストラップされた SETUP.EXE と前提条件を使用することをお勧めします。InstallShield の前提条件として vc_redist_x64 を含めます。MSI の前に必要なすべての VC Redist をインストールします。

于 2012-12-15T09:03:34.797 に答える