3

我有一个安装网站、几个 SQL Server 数据库和配置用户等的 wix 项目。

安装的一部分使用自定义操作为 ASP.NET 成员系统创建一个数据库,以执行 aspnet_regsql.exe。

然后安装的另一部分需要执行 SQL 脚本来创建初始用户。问题是脚本组件在自定义操作发生之前被执行,因此脚本中对成员表和存储过程的引用无效并且安装失败。

这是我的安装文件的一部分:

<Feature Id="Complete" Title="Darzi Web" Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR">
  <ComponentGroupRef Id="SiteIISConfig"/>
  <ComponentGroupRef Id="SQLConfig" />
  <ComponentGroupRef Id="InstallFiles" />
  <ComponentRef Id="WebConfigChanges" />
  <ComponentGroupRef Id="SQLBootstrap" />
</Feature>

<InstallExecuteSequence>
  <Custom Action='RegSql'  After='InstallFiles'/>
</InstallExecuteSequence>

我需要一种方法来告诉安装程序以确保在“RegSql”之后发生“SQLBootstrap”。

任何帮助将不胜感激。

编辑

这是运行 Bootstrap SQL 的部分:

<Fragment>
<DirectoryRef Id="INSTALLDIR">
  <Component Id="SqlBoostrapComponent" Guid="CAAA1447-446F-4C1B-9239-812ABA5AF0FF" KeyPath="yes">

      <sql:SqlScript SqlDb='DarziAspNetDbDatabase' Id='Bootstrap' BinaryKey='Bootstrap' ExecuteOnInstall='yes' Sequence='1' />

  </Component>
</DirectoryRef>


<Binary Id='Bootstrap' SourceFile='Bootstrap.sql' />

<ComponentGroup Id="SQLBootstrap">
  <ComponentRef Id="SqlBoostrapComponent" />
</ComponentGroup>

</Fragment>
4

1 回答 1

4

假设您运行的 Sql 脚本使用内置的sql 操作您需要InstallSqlData在 RegSql 操作之后安排操作:

<Custom Action="InstallSqlData" After="RegSql" />
于 2013-05-15T15:37:33.657 回答