Frage

Ich habe eine WinForm-Anwendung erstellt mit VS 2008 (C #) und SQL Server Express 2008, die derzeit auf Testbenutzer PC eingesetzt wird.

Ich habe Änderungen an der Datenbankstruktur zu tun (füge Felder, Tabellen, etc.) und ich frage mich, was die beste Methode ist, um die Änderungen auf dem Benutzer-PC (ohne dabei die Nutzer-Daten).

zu verteilen

Von dem, was ich bisher gelernt habe, muss ich die Änderungen in einer Skriptdatei schreiben. Aber was ist die beste Methode, die Skriptdateien zu verteilen, ohne sie manuell in dem SQL Server Management Studio ausgeführt wird? Gibt es eine automatische Verteilung Methode, die Sie vorschlagen? Muss ich meine eigene Update-Anwendung schreiben?

Ich verwende derzeit Clickonce die Änderungen in der EXE-Datei zu verteilen. Ist noch Clickonce eine praktikable Lösung, wenn Sie tun müssen, um Änderungen in der Datenbank mit der neuen Version?

TIA

War es hilfreich?

Lösung

Es gibt viele Möglichkeiten, wie Sie dies tun - entweder bauen Sie Ihre eigene homegrown Version irgendwie nach oben (zB wir derzeit Skripte Datenbankänderung in eine DLL als eingebettete Ressourcen verpacken, und einen Motor haben, die auf dem Client-Rechner laufen wird bei der Installation und / oder Aktualisierungszeit), oder Sie an leicht verfügbaren .NET Produkten wie Red-Tor SQL Packager , die Sie viel Zeit und Mühe sparen können.

Andere Tipps

Sie können Ihre Anwendung beim Start ein Skript schreiben, Datei aus dem Anwendungsordner zu lesen und auszuführen. Sie könnten das Skript einen Wert in der Datenbank aktualisieren, sobald seine um es zu verhindern getan von wieder ausgeführt wird.

Sie können die neue Skriptdatei als Inhalt bereitstellen und die Anwendung wird es beim nächsten Start ausgeführt werden, ein Upgrade Ihrer Datenbank

Sie können entweder anrufen osql oder sqlcmd das Schiff mit MSSQL.

Sie können auch SMO verwenden, um Ihre Datenbank Change Scripts auszuführen. Siehe Blog wie es gemacht wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top