/ / Kolejność wykonywania komponentów w Wix - serwer SQL, wix

Zamówienie wykonania komponentu w Wix - sql-server, wix

Czy istnieje sposób, aby zapewnić, poprzez określenie kolejności lub określenie zależności, że jeden komponent będzie wykonywany przed drugim w WiX?

W szczególności próbuję utworzyć bazę danych, a następnie opcjonalnie uruchomić na niej skrypt. Mój Wix wygląda podobnie do tego:

<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>

Chcę się upewnić, że komponent SQLServerInstallScriptWA jest wykonywany przed komponentem SQLServerCreateUserWA.

Odpowiedzi:

1 dla odpowiedzi № 1

Komponenty nie są zamawiane. Jednak SqlScript i SqlString mają atrybuty sekwencji, których można użyć do narzucenia porządku. Zdarza się, że atrybuty SqlScript i SqlString Sequence są uporządkowane razem, aby obsłużyć tylko ten scenariusz.