2011-08-02 3 views
3

나는 Wix로 데이터베이스를 만드는 데 문제가있다. 내가 찾을 수있는 예제 (아래 링크 참조)는 모두 wix를 사용하여 데이터베이스를 생성하고 create table sql 스크립트를 실행하는 것입니다. 문제는 데이터베이스와 테이블을 만들기 위해 CREATE DATABASE를 사용하여 SQL 스크립트를 실행하고 .wxs 파일의 SqlDatabase 태그를 사용하여 데이터베이스를 먼저 만들지 않아야한다는 것입니다. 이것이 Wix에서 가능합니까? SQL Server Express를 사용하고 있습니다. 이 작업을 수행하는 방법에 대한 예가 도움이됩니다. SQL 스크립트의Wix를 사용하여 데이터베이스를 생성하기 위해 SQL 스크립트를 실행하는 방법

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으로 설정하여 데이터베이스가 자동으로 작성 또는 삭제되지 않도록 할 수 있습니다. 이 작업을 수행 할 경우, 당신은 설치 실패의 경우에 데이터베이스를 h, 롤백에서 실행되는 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> 
관련 문제