2011-08-02 213 views
3

我遇到了使用Wix創建數據庫的問題。示例(請參閱下面的鏈接)我可以找到所有創建數據庫首先使用wix並運行create table sql腳本。問題是我需要設置wix以使用CREATE DATABASE運行sql腳本來創建數據庫和表,而不是首先使用.wxs文件中的SqlDatabase標記創建數據庫。這有可能在Wix中做到這一點嗎?我正在使用SQL Server Express。任何關於如何做到這一點的例子都會有所幫助。 SQL腳本的如何運行sql腳本使用Wix創建數據庫

http://www.rrreese.com/Article/Show/WiX%20SQL

實施例:

CREATE DATABASE My_DB 
CREATE TABLE Test (Value1 CHAR(50), Value2 INTEGER) 
CREATE INDEX TestIndex ON Test (Value1) 

預先感謝。任何幫助深表感謝。

回答

1

您需要安裝SqlDatabase標籤。沒有它,安裝程序將永遠不會知道腳本必須運行在哪個服務器和數據庫上。但是,您可以同時設置CreateOnInstallDropOnUninstall(有三個CreateOnX和三個DropOnX,您可能需要to check them all)至no以防止自動創建或刪除數據庫。

請注意,如果您這樣做,則應提供在回滾時運行的SqlScript,以便在安裝程序發生故障時刪除數據庫。這通常是使用SqlDatabase標籤自動完成的。

7

爲什麼沒有包含SQL代碼的腳本文件來創建數據庫?

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"> 
    <Product Name='SQL app 1.0' Id='DB501C18-86C7-4D14-AEC0-86416A69ABDE' Language='1033' Codepage='1252' 
    Version='1.0.0' Manufacturer='ABC Ltd.'> 
      <Package Id='????????-????-????-????-????????????' Keywords='Installer' Description="SQL App 1.0 Installer" 
       Comments='Comment.' Manufacturer='ABC Ltd.' InstallerVersion='100' 
       Languages='1033' Compressed='yes' SummaryCodepage='1252' /> 
     <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' /> 
     <User Id="MySQLUser" Name="[SQLUSER]" Password="[SQLUSERPASSWORD]"></User> 
     <Directory Id='TARGETDIR' Name='SourceDir'> 
      <Directory Id='ProgramFilesFolder' Name='PFiles'> 
       <Directory Id='INSTALLDIR' Name='TestSQL'> 
         <Component Id="MySqlComponent" Guid="C50999A0-02FD-42d5-9F65-7375318DD328"> 
         <SqlDatabase Id="MySqlDatabase" Database="MyDatabase" Server="[SQLSERVER]" Instance="[SQLINSTANCE]" 
          CreateOnInstall="yes" DropOnUninstall="yes" User="MySQLUser" ContinueOnError="yes"> 
           <SqlScript Id="CreateDatabase" ExecuteOnInstall="yes" BinaryKey="CreateTablesBin"></SqlScript> 
         </SqlDatabase> 
         </Component> 
       </Directory> 
      </Directory> 
     </Directory> 
     <Binary Id="CreateTablesBin" src="CreateDatabase.sql"></Binary> 
     <Feature Id='Complete' Level='1' Description="Full" Title="Full Installation"> 
      <ComponentRef Id='MySqlComponent' /> 
     </Feature> 
    </Product> 
</Wix> 
相關問題