2009-06-10 5 views
2

Ich habe eine WPF-Desktop-Anwendung, die eine benutzerdefinierte Datenbank für den Speicher verwendet. Ich muss ein Setup-Projekt vorbereiten (von Visual Studio 2008) (vollständige Einrichtung, nicht ClickOnce).Wie installiert man eine benutzerdefinierte Desktop-Anwendungsdatenbank in SQL Express?

Ich kann die Liste der Voraussetzungen für die Anwendung hinzufügen, und es installiert während der Einrichtung der Anwendung.

Meine Frage ist: Wie kann ich während der Installation ein Skript ausführen, um die Datenbank zu erstellen, die die Anwendung benötigt? ODER wie kann ich die Datenbank während des Setups auf dem Clientcomputer wiederherstellen?

Eine weitere verwandte Frage, was würde passieren, wenn bereits auf dem Client-Rechner existiert? Wie erkennen Sie den Instanznamen und die Verbindungsdaten? Und dann, wie kann man - falls benötigt - die Verbindungszeichenfolge ändern, die von Entity-Framework verwendet wird, um eine Verbindung zu dieser Datenbank herzustellen?

Danke, Ed

Antwort

3

SQL Server Express Edition im Allgemeinen eine sehr schlechte Wahl für eine lokale Datenbank ist. Es ist eine Server-Klasse-Engine, die gerne eine Menge Ressourcen verwendet und als Dienst ausgeführt wird (so verbraucht sie diese Ressourcen auch, wenn Ihre App nicht ausgeführt wird). Mit anderen Worten, es gehört auf einen Server. Der einzige Ort, an dem SQL Server Express auf einem Desktop verwendet wird, der fast Sinn macht, ist als Teil der Microsoft Small Business Accounting App, und in diesem Fall installieren Sie das Programm im Allgemeinen auf einer Maschine, deren Hauptzweck die Buchhaltung ist dein Geschäft.

Was Sie tun sollten, ist eine Desktop verwenden oder In-Process-Klasse Motor wie SQL Server Compact Edition , SQLite oder sogar Access. Dies wird auch stark vereinfachen Sie Ihre Bereitstellung.

Wenn Sie darauf bestehen, dies durchzudrücken, wissen Sie, dass das Installationsprogramm eine neue Instanz von SQL Server auf dem System erstellen wird. SQL Server wird damit einverstanden sein. Sie müssen dies jedoch in der Verbindungszeichenfolge Ihrer App berücksichtigen, und das kann etwas komplizierter sein. Darüber hinaus die Datenbank einzurichten Sie ein paar Möglichkeiten:

  • es von Client-Code erstellen beim ersten Start der App
  • es erstellen mit einer angepassten Installations Aktion (ganz rechts, weil msi Berechtigungen zu bekommen)
  • Verteilen Sie eine Pre-Build * .mdf-Datei und hängen Sie sie mit einer benutzerdefinierten Installer-Aktion oder beim ersten Start der App an.