2009-07-08 3 views
0

Есть ли способ обеспечить либо путем указания порядка, либо путем задания зависимостей, чтобы один компонент выполнял перед другим в WiX?Выполнение исполнения компонента в Wix

В частности, я пытаюсь создать базу данных, а затем, при желании, запустить на ней скрипт. Моя 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

Компоненты не заказываются. Однако SqlScript и SqlString имеют атрибуты последовательности, которые могут использоваться для наложения порядка. Атрибуты SqlScript и SqlString Sequence упорядочиваются вместе для обработки только этого сценария.

+0

Последовательность переносится из компонента в компонент тогда? – Jeff

+0

Я думаю, что безопаснее сказать, что @Sequence не имеет ничего общего с Component. –

+0

Я считаю, что порядок ComponentRefs в Feautre диктует порядок исполнения. В общем. – Will

Смежные вопросы