10

InstallShield を使用して 32 ビット環境と 64 ビット環境の両方のインストーラーを生成する最良の方法は何ですか? 私のアプリケーションの大部分はビット中立です (.net、Java、データ ファイル)。これらのファイルを一度だけパッケージ化すればよかったのにと思います。installshield プロジェクトのメンテナンスを減らすための標準的なアプローチはありますか? 現在、私が見つけた唯一の解決策は、2 つの重複プロジェクトを作成することです。各コンポーネントには 64 ビットのフラグが付けられ、デフォルトのインストール ディレクトリは ProgramFiles64 に設定されています。これを行うためのより良い方法があるはずです!

私のアプリケーションのごく一部だけが、実行されているビット数を気にします。異なる必要があるいくつかの C++ DLL と JNI 呼び出しがあります。このほとんどは、実行中の JRE が 64 ビットかどうかを確認することによって、実行時に決定されます。

130 MB のファイルを 2 つ配布するのは避けたいと思います。理想的には、それぞれが共通のコンポーネントを参照する両方のインストーラーを含む 1 つの大きな zip ファイルを出荷します。共通のもののためにマージ モジュールを作成し、各プロジェクトでそれらを参照する必要がありますか?

それが重要な場合は、InstallShield 2009 (Premier) を使用しています。

4

2 に答える 2

7
  • セットアップで 64 ビット コンポーネントをゼロにすることができる場合は、100% 32 ビット セットアップにするだけで、32 ビットと 64 ビットの Windows で同じように機能します。

  • それが不可能な場合は、製品構成フラグを使用することをお勧めします。「リリース」ビューで、「XP32」や「XP64」などの複数の製品構成を作成します。テンプレートの概要フィールドを適切にマークします。1 つは「Intel;1033」、もう 1 つは「AMD64;1033」です。「xp32」、「xp64」など、それぞれを一意の製品構成フラグに関連付けて識別します。次に、機能ごとに適切なリリース フラグを設定します。必要に応じて、64 ビット コンポーネントに 64 ビット プロパティを設定できます。「xp32」としてマークした機能に 64 ビット コンポーネントが含まれていないことを確認してください。これにより、InstallShield プロジェクト ファイルを 1 つだけ持つことができますが、32 ビットと 64 ビットの両方のリリースを生成できます。

于 2009-09-15T05:36:34.003 に答える
1

このスレッドで言及されているように単一の 32 ビット セットアップ プロジェクトを使用すると、実行内容によっては、64 ビット システムで 32 ビット プロセスを実行する際に問題が発生する可能性があります。セットアップは 32 ビット プロセスであるため、OS は 32 ビット リソースを使用する必要があると想定します。64 ビット マシンでは、両方があります。たとえば、system32 と SysWOW64 です。(不思議なことに、sysWOW64 は 32 ビットですが、system32 には 64 ビット リソースが格納されています。) SYSNATIVE ファイル システム リダイレクタを使用して、OS に 64 ビット リソースを強制的に使用させることができます。これは、Windows Server 2008R2 および 2012 で DISM.exe または PKGMGR.exe を使用して IIS をセットアップするときに役立つことがわかりました。

于 2014-03-20T16:18:56.550 に答える