2015-01-08 7 views
5

Ich versuche, SQL Server-Datenbank von BAK-Datei (Datenbank-Backup-Datei) mit Wix Installer 3.9 wiederherzustellen. Aber leider passiert es nicht. Hier ist mein Versuch CodesWie die Wiederherstellung Datenbank von BAK-Datei (Datenbank-Backup) in wix Installateur 3.9

<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> 

Der obige Installer läuft erfolgreich, wenn ich die Datei mit .sql (SQL-Skript) ersetzen Datei. Ich habe auch versucht, eine Skriptdatei zu schreiben, um die Datenbank wiederherzustellen, aber kein Glück. Darf ich die Community fragen, wie eine .bak-Datei vom wix-Installer ausgeführt wird?

Vielen Dank im Voraus

+0

Haben Sie das benutzerdefinierte Kation versuchen, wieder die Datenbank durchführen? 1) fügen Sie die benutzerdefinierte Aktion hinzu, übergeben Sie den Speicherort der Zurückdatei und fügen Sie in der benutzerdefinierten Aktion C# -Code in die wiederhergestellte Datenbank auf dem Server ein. –

Antwort

0

Leider werden Sie es nicht die bak-Datei wiederhergestellt werden können. Dies ist kein Skript (das für die Komponente sql: SqlScript benötigt wird), dies ist eine Sicherungsdatei, die sich unterscheidet.

Eine BAK-Datei ist in der Regel die native Backup-Datei in SQL Server erstellt.

Eine SQL-Datei ist ein Skript, und könnte sogar eine mySQL-Dump sein, die bei der Ausführung wie eine Wiederherstellung scheinen würde, obwohl technisch wäre es eine neue db erschaffen.

Dies ist in der Wix Dokumentation bestätigt: http://wixtoolset.org/documentation/manual/v3/xsd/sql/sqlscript.html

Verwandte Themen