2012-09-10 72 views
2

我想在安装期间使用WIX创建数据库。我知道我可以使用SqlDatabase元素这样做:使用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

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

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

有了您的片断,你将无法编译MSI软件包,你会得到以下错误:SQL:SqlDatabase元素必须具有以下属性的一个规定:CreateOnInstall,CreateOnUninstall,DropOnInstall或DropOnUninstall。 – dna2

相关问题