Frage

Ich plane eine procedue unsere Software, unsere Kunden lösen eine erweiterte Version eines bestehendes Verfahren unter Verwendung des Windows-Batch-Skripte verwendet. Ich hoffe, diesen Prozess zu verbessern und die Installation der folgenden Elemente automatisieren:

  • Dateien. Die Dateien werden einfach auf ein Ziel kopiert.
  • MSSQL-Datenbanken. Ich denke, ich werde den OSQL-Befehl verwenden, diese mit einer Datenbank ausgeführt werden.
  • IIS virtuelle Verzeichnisse. Server-Versionen von Windows haben in der Regel die IIS-Toolkit installiert, das einige Werkzeuge für die Erstellung von virtuellen Verzeichnissen hat und so weiter von der Kommandozeile so werde ich diese verwenden. Ich denke, die „iiscnfg“ die ich ist verwenden, um zuvor gespeicherte Konfigurationsdateien in IIS einfügen.
  • Windows-Dienste. Unsere Leistungen haben die Fähigkeit, themself von der Kommandozeile zu installieren.

Also für jeden Anwendungsimplementierung Ich habe eine Struktur wie folgt aus:

Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc

Also im Grunde ein Terminal und CD in den Veröffentlichungen Verzeichnis öffnen, führen Sie einen Befehl so etwas wie:

get-release "Release3"

, welche eine Reihe von Befehlen auf alle Anwendungen im Release3 Verzeichnis ausgeführt wird, und kopieren Sie alle Dateien, configs, installieren Sie alle Datenbanken und virtuelle IIS-Verzeichnisse.

Es ist ein wenig mehr, die es wie Backup tut das Zielverzeichnis für Dateien, etc., aber seine irrelevant für den Moment.

Meine Frage ist, ob jemand Erfahrung macht einen Einsatz wie diese hat und wenn es irgendwelche Fehler ist, kann ich von anderen Völkern Erfahrung lernen.

Wir können leider nicht mit MSI-Pakete gehen oder dass ein Nullsoft (dessen Name mir entfallen ist für den Moment). Wenn es nicht so gemacht wird es gemacht manuell so dass ich mir wirklich bin versucht, hier zu helfen.

War es hilfreich?

Lösung

Ich habe mehrere Skripte wie diese gerollt, und die hässlichste Teile mit sind die Fehlerbehandlung behandeln - wie Sie Fehler erkennen zu tun, was tun Sie, wenn sie auftreten, können Sie alle Änderungen auf dem neuesten Stand gemacht Rollback, und so auf. Relativ einfach, wenn Sie eine neue Installation tun, bei weitem nicht so einfach, wenn Sie ein vorhandenes System sind zu aktualisieren. (Sie sollten es nie davon ausgehen, werden perfekt funktionieren jedes Mal, -. Morgigen MS Update könnte die heutige Skript brechen, nachdem alle)

Es gibt nur wenige Dinge,) Sie können aus einer Batch-Datei nicht sinnvoll tun. Können Sie in VB-Skripte, Java-Scripts verrutschen, einige Powershell nennen, oder irgendetwas anderes, die schwierigen Sachen zu behandeln?

Andere Tipps

Ich sehe kein Problem mit Dingen wie dies mit einer Batch-Datei zu tun. Aber Sie gehen zu haben einige Gedanken zu dem, was einige der Unterschiede zwischen den Maschinen (fehlende Verzeichnisse, bereits vorhandene Verzeichnisse, bereits vorhandene Dateien, Dateiversionen, etc.) zu geben, auch sein mag, Adresse, um sie, und Test wirklich gut auf ein Vielzahl von Maschinen.

Es ist zu schade, dass du nicht einen Installer verwenden können, weil Installateure bereits die meisten dieser Probleme für Sie mildern. Im Wesentlichen werden Sie Ihren eigenen Installer rollen, und Sie werden nicht vom Unterricht profitieren gelernt, Best Practices, usw., dass ein Installateur Ihnen geben wird.

Eine andere Sache, die Sie nicht ohne einen Installateur zu tun in der Lage ist, eine Datei installieren, die durch das Betriebssystem gesperrt wird. Installateure behandeln dies, indem die Datei in ein temporäres Verzeichnis kopiert wird, eine „Last beim Neustart“ -Eintrag in der Registrierung setzen und dann den Benutzer auffordert, den Computer neu zu starten.

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