2

Delphi のインストールを高速化するために、いくつかの Delphi セットアップ情報を保存しようとしていますが、レジストリ キーの値の順序の動作に非常に混乱しています。Delphi XE2 レジストリ キーをエクスポートしました。

HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Known Packages

*.reg ファイルに。レジストリから削除し、reg ファイルを再ロードした後、Delphi は bpl が見つからないと文句を言います。キー リストを見ると、すべてアルファベット順になっています。reg ファイルではこの順序ではありません。パッケージが別のパッケージに依存している場合、依存しているパッケージを最初にリストする必要があると思います。私は正しいですか?

次に、Inno Setup を使用して、B、A、D の順に 3 つのキー値を作成しました。実行後、レジストリには A、B、D キーの順序が表示されます。

コンポーネントインストーラーとして、私は依存パッケージをめったに持っていませんでした。選択した順序でキーを残すには、どのような方法を使用できますか? Delphi が必要とする順序で reg ファイルがあるため、何かがそれを行ったに違いありません。エクスポートに続いてインポートが対称的ではないというのはおかしいと思います。

4

1 に答える 1

4

お気づきのように、これは確かにレジストリの列挙順とアルファベット順に関係しています。

Delphi はパッケージを列挙順にロードしますが、これは必ずしもアルファベット順ではありません。
列挙順を表示するレジストリ編集ツールはまだ見つかりません。常にアルファベット順で表示されるようです。

これは特に次の場合に重要です。

  1. BPL ファイルは PATH 上になく、Delphi は依存する BPL ファイル自体を解決できません。
  2. 依存関係の順序はアルファベット順とは異なります

BPL ファイルを PATH に配置できない場合は、BPL ファイルをロードする順序でレジストリ値を追加する必要があります (これを行うには、おそらく同じキーを持つ複数のセクションが必要です)。

または、依存関係の順序をアルファベット順にする必要があります (;

于 2012-10-22T13:17:08.233 に答える