順序を指定すること、または依存関係を指定することによって、1つのコンポーネントがWiXで別のコンポーネントより先に実行されるようにする方法はありますか?
具体的には、データベースを作成しようとしていて、オプションでスクリプトを実行します。My Wixは次のようになります。
<ComponentGroup Id="SQLServerComponentGroup">
<Component Id="SQLServerIstallScriptWA" Guid="" >
<Condition>INSTALLDB</Condition>
<mssql:SqlDatabase Id="dbWA" Server="localhost" Database="[DATABASENAME]" CreateOnInstall="yes" ConfirmOverwrite="yes" DropOnReinstall="no" DropOnUninstall="yes">
<mssql:SqlScript Id="dbWAScript" ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="no" Sequence="1" BinaryKey="MSSQLCreateDBBin" />
</mssql:SqlDatabase>
</Component>
<Component Id="SQLServerCreateUserWA" Guid="">
<Condition>INSTALLDB AND DBCREATEUSER = 1</Condition>
<mssql:SqlDatabase Id="dbWA" Server="localhost" Database="[DATABASENAME]">
<mssql:SqlString Id="dbWACreateUser" ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" Sequence="1" SQL="" />
</mssql:SqlDatabase>
</Component>
</ComponentGroup>
SQLServerInstallScriptWAコンポーネントがSQLServerCreateUserWAコンポーネントの前に実行されていることを確認します。
回答:
回答№1は1コンポーネントは注文されません。 ただし、SqlScriptとSqlStringには順序を付けるために使用できるSequence属性があります。このシナリオを処理するために、SqlScriptとSqlStringのSequence属性が一緒に並べ替えられます。