使用WIX创建一个包含脚本而不是SQLDatabase元素的数据库

时间:2012-09-10 20:21:44

标签: wix

我想在安装过程中使用WIX创建数据库。我知道我可以使用像这样的SqlDatabase元素来执行此操作:

<sql:SqlDatabase Id='SqlDatabase' Database='MyDB'  Server='localhost'  Instance='MyInst'
                  CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'>
                <sql:SqlScript Id='CreateTables' BinaryKey='CreateTables' ExecuteOnInstall='yes'/>
              </sql:SqlDatabase>

问题是我想在脚本文件中而不是在SqlDatabase元素中创建数据库。有没有办法做到这一点?

如果我将CreateOnInstall设置为'no',则脚本将不会运行。

1 个答案:

答案 0 :(得分:1)

是的,使用SqlDatabase元素连接到master数据库(或您知道存在的任何其他数据库),然后SqlScript可以完成您想要的所有工作。您可能需要更新SqlScript,使其以正确的数据库为目标。

<sql:SqlDatabase Id='SqlDatabase' Database='master'  Server='localhost'  Instance='MyInst'>
   <sql:SqlScript Id='CreateTables' BinaryKey='CreateTables' ExecuteOnInstall='yes' />
</sql:SqlDatabase>