2015-01-08 36 views
5

wix installer 3.9を使用して.bakファイル(データベースバックアップファイル)からSQL Serverデータベースを復元しようとしています。しかし、残念ながらそれは起こっていません。ここに私のトライアルコード wix installer 3.9の.bakファイル(データベースバックアップ)からデータベースを復元する方法

<Fragment> 
    <Binary Id="PHRBackupBin" SourceFile="Database/PHR.bak"></Binary>  

    <!--<util:User Id="SQLUserSA" Name="[DB_USER]" Password="[DB_PASSWORD]"></util:User>--> 
    <util:User Id="SQLUserSA" Name="sa" Password="sa"></util:User> 

<DirectoryRef Id="INSTALLFOLDER"> 
    <Component Id="SqlComponent" Guid="8A1C82DB-1DD3-4FB5-8600-4F370FE1E04B"> 
     <Condition>NOT Installed</Condition> 
     <sql:SqlDatabase Id="SqlServerDatabase" Database="PHR" Server="." CreateOnInstall="yes" DropOnUninstall="yes" User="SQLUserSA" ContinueOnError="no" Instance="SQLEXPRESS">   
     <sql:SqlScript Id="PHRBackup" ExecuteOnInstall="yes" ExecuteOnUninstall="no" BinaryKey="PHRBackupBin" ContinueOnError="no" /> 
    </sql:SqlDatabase> 
    <CreateFolder/> 
    </Component> 
</DirectoryRef> 

<ComponentGroup Id="DatabaseConfiguration"> 
    <ComponentRef Id="SqlComponent"></ComponentRef> 
</ComponentGroup> 

私はファイル.SQL(SQLスクリプト)を使用してファイルを置き換える場合は、上記のインストーラが正常に実行さ

です。私はデータベースを復元するためにスクリプトファイルを書きましたが、運はありませんでした。 wixインストーラから.bakファイルを実行する方法をコミュニティに尋ねてもいいですか?事前残念ながら

+0

はカスタムカチオンが復元されたデータベースに実行しようとすることがありますか? 1)カスタムアクションを追加し、バックファイルの場所を渡し、カスタムアクション内にサーバーのリストアされたデータベースにC#コードを書き込みます。 –

答えて

0

おかげで、あなたはBAKファイルを使用してそれを復元することはできません。これはスクリプトではなく(これはsql:SqlScriptコンポーネントに必要です)、これは異なるバックアップファイルです。

通常、.bakファイルはSQL Serverで作成されたネイティブバックアップファイルです。

.sqlファイルはスクリプトであり、実行時に復元のように見えますが、技術的には新しいデータベースを作成します。

この

はWiXのドキュメントで確認されています http://wixtoolset.org/documentation/manual/v3/xsd/sql/sqlscript.html

関連する問題