2014-07-02 58 views
0

我有一个WIX项目,我想从SQL脚本中获取create a database。我的脚本在使用MS SQL Management Studio来执行时效果很好,但不是在WIX中。使用WIX安装程序创建数据库

<Fragment> 
    <Component Id="CreateDatabase" Guid="D5D895A4-931A-4E19-BB66-C34C7659933B" KeyPath="yes" Directory="TARGETDIR"> 
     <util:User Id="SQLUser" Name="[DBUSER]" Password="[DBPWD]"/> 
     <sql:SqlDatabase Id="SqlDatabase" Server="localhost" Database="master" CreateOnInstall="yes" DropOnUninstall="yes" User="SQLUser"> 
     <sql:SqlScript Id="InstallDatabaseScript" ExecuteOnInstall="yes" BinaryKey="InstallDatabase" /> 
     </sql:SqlDatabase> 
    </Component> 
    </Fragment> 

错误消息是有点像维克斯不理解Database="master",但其实我是想在master数据库任何人谁得到线索执行这个脚本?

回答

0

它只是一个猜测,但鉴于您的脚本不可能创建主数据库,因为它已经存在,并且您已指定CreateOnInstall/DropOnUninstall,所以对于WiX抱怨它似乎是合理的 - 它既不能创建也不会丢失主数据库...

+0

我不在我的脚本中创建主数据库。我只在脚本中指定了关键字'USE master GO Create DATABASE MyDatabase',但是我想在master数据库上执行这个脚本。 –

+0

是的,但是WiX对MyDatabase一无所知,并且您已经指定了CreateOnInstall =“yes”DropOnUninstall =“yes”,这可能是WiX将与主数据库相关 –