3


2

32ビットおよび64ビットアプリ用の正しいインストーラーの起動

さまざまな理由で、32ビットアプリと64ビットアプリの両方としてコンパイルする必要があるアプリケーションがあります。 問題は、1枚のCDで両方のセットアップファイル(msi)を配布することです。 どのsetup.exeを起動するかを知るために使用できる起動条件またはautorun.infエントリはありますか? または、autorunによって呼び出され、OSを決定し、適切なsetup.exeを呼び出す別の小さなexeを作成する必要がありますか?

2 Answer


1


autorun.inf filesに固有の32/64ビット検出サポートはないようです。

32ビットおよび64ビットMSIを提供するほとんどのアプリケーションが従う慣習は、あなたが言及する2番目のオプションに似ています。

  1. 単一の32ビットsetup.exeアプリケーションを作成します(それで実行されます いずれかのプラットフォーム)。 理想的には、これはC / C ++で書かれており、可能な限り小さくて迅速で、他のライブラリ/フレームワークに依存しないようにします(例: 静的リンク)。

  2. 64ビットで実行しているかどうかを検出します(Windowsのサンプルコードを参照してください) API IsWow64Process関数

  3. 適切なMSIを実行する


1


カスタムアクションを使用してOSを検出し、適切なインストーラーを呼び出すことができます。

ここに例を示しました:https://stackoverflow.com/questions/3724956/single-msi-to-install-correct-32-or-64-bit-c-application/4518939#4518939 [インストールする単一のMSI 32ビットまたは64ビットの正しいC#アプリケーション]