2014-07-02 57 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將與主數據庫相關 –