2

WiX インストーラーを使用して DB アップグレードを実装することを検討しています。したがって、要素を持つコンポーネントはほとんどありませんSqlScript。しかし、コンポーネントの実行シーケンスに依存できるかどうかはわかりません。

WiX は、フラグメントで定義されている順序で常にコンポーネントを MSI コンポーネント テーブルに追加しますか? また、Windows インストーラーはコンポーネント テーブルの順序でそれらを実行することを保証しますか?

4

1 に答える 1

2

いいえ、MSI は特定の順序でコンポーネントを処理しません。それは非決定論的です。ただし、WiX が提供する SQL スクリプト カスタム アクションは、特定の順序でスクリプトを処理します。SqlScript@Sequence 属性によって決定されます。

CustomActions が評価されると、インストールされているコンポーネントに基づいて、実行する必要があるスクリプトが決定されます。次に、Sequence 属性に基づいてその結果を並べ替え、インストールのスケジュールを設定します。

インストールのカテゴリに基づいて、100 200 300 400 のようなものを使用する傾向があります。

100 - 空のデータベースを作成する

200 - テーブルの作成

300 - 制約を適用する

400 - データのロード

500 - プロシージャやトリガーなどのオブジェクトを作成する

アイデアは、101 対 102 を細かく管理する必要はなく、インストールの段階として扱うだけです。

于 2012-11-06T19:05:41.950 に答える