2009-07-08 64 views
0

有没有办法通过指定顺序或通过指定依赖关系来确保一个组件将在另一个组件之前在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具有可用于强加顺序的Sequence属性。 SqlScript和SqlString序列属性碰巧一起排列来处理这种情况。

+0

序列从组件到组件,然后? – Jeff 2009-07-09 17:15:43