1

HKLM ハイブの下にいくつかのレジストリ値を登録する必要がある C# で記述された .NET コンポーネントがあります。このコンポーネントは、適切なフレーバーの Windows を実行している x86 (32 ビット) と x64 (64 ビット) の両方のボックスにインストールされることを期待しています。64 ビット システムでは、コンポーネントが 32 ビットと 64 ビットの両方のホスティング プロセスで使用できることを確認したいと考えています。当分の間、Visual Studio の展開プロジェクトを使用することに固執しています。

私が望むのは、インストーラーが 64 ビット システムで実行されている場合にレジストリ エントリを下に置くことですHKLM/Software/Blablah。これにより、64 ビット プロセスで実行している場合にコンポーネントがグローバル構成設定を見つけることができます。ただし、私のコンポーネントが同じマシン上で実行されている 32 ビット プロセスによってホストされている場合、同じキーであると考えられるものから読み取られますが、Wow64 は HKLM/Software/Wow6432Node/Blablah に変換されます。

次のように 64 ビット インストーラーを作成しても問題ありませんか。

  • x64インストーラーとしてマークされています
  • HKLM/Software/Blablah64ビットプロセスのためにエントリを書き込みます
  • HKLM/Software/Wow6432Node/Blablah同じマシン上の 32 ビット プロセスのために、これらのエントリの正確なコピーを書き込みます 。

インストーラーを x64 としてマークしたため、特に 32 ビット システム用に、HKLM/Software/Blablah.

4

1 に答える 1

2

通常は、32 ビットと 64 ビットの両方のインストール パッケージを使用します。32 ビット マシンでは 32 ビット パッケージのみを実行し、64 ビット マシンでは両方を実行します。

すべてのレジストリとファイルのリダイレクトを自分で処理しようとするのは悪夢です。64 ビット マシンに 32 ビット パッケージをインストールし、システムにリダイレクトを任せる方がはるかに優れています。とにかく 32 ビット マシン用に 32 ビット パッケージを作成する必要があるため、余分な作業は必要ありません。

于 2011-06-04T21:31:41.347 に答える