2009-07-14 15 views
0

Ich plane ein Verfahren zur Freigabe unserer Software an unsere Kunden unter Verwendung einer erweiterten Version einer bestehenden Prozedur, die Windows-Batch-Skripte verwendet. Ich hoffe, diesen Prozess zu verbessern und die Installation der folgenden Elemente zu automatisieren:Stapel-Skript-Installationsprozess

  • Dateien. Dateien werden einfach in ein Ziel kopiert.
  • MSSQL-Datenbanken. Ich nehme an, dass ich den OSQL-Befehl verwenden werde, um diese gegen eine Datenbank auszuführen.
  • IIS virtuelle Verzeichnisse. Server-Versionen von Windows haben in der Regel das IIS-Toolkit installiert, das einige Tools zum Erstellen virtueller Verzeichnisse und was nicht von der Befehlszeile hat, so dass ich das verwenden werde. I think the "iiscnfg" is the one I use to insert previously saved config files into IIS.
  • Windows-Dienste. Unsere Dienste können sich von der Kommandozeile aus 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 öffnen Sie ein Terminal und CD in den Veröffentlichungen Verzeichnis, führen Sie einen Befehl so etwas wie:

get-release "Release3" 

, die eine Reihe von Befehlen für alle Anwendungen im Verzeichnis Release3 ausführen und alle Dateien kopieren, konfigurieren und alle Datenbanken und virtuellen Verzeichnisse installieren.

Es gibt ein bisschen mehr, das Backup des Zielverzeichnisses für Dateien, etc. tut, aber es ist für den Moment irrelevant.

Meine Frage ist, ob irgendjemand irgendeine Erfahrung hat, einen Einsatz wie diesen zu machen, und wenn es irgendwelche Fehler gibt, kann ich von der Erfahrung anderer Leute lernen.

Leider können wir nicht mit MSI-Paketen gehen oder das NullSoft (dessen Name mir im Moment entgeht). Wenn es nicht so gemacht wird, wird es manuell gemacht, also versuche ich wirklich, mir selbst hier zu helfen.

Antwort

1

Ich habe mehrere Skripte wie diese gerollt, und die hässlichsten Teile, mit denen umzugehen ist, sind die Fehlerbehandlung - wie erkennen Sie Fehler, was tun Sie, wenn sie auftreten, können Sie alle Änderungen rückgängig machen und bald. Relativ einfach, wenn Sie eine Neuinstallation durchführen, nicht so einfach, wenn Sie ein vorhandenes System aktualisieren. (Sie sollten niemals davon ausgehen, dass es jedes Mal perfekt funktioniert - das MS-Update von morgen könnte schließlich das heutige Skript durchbrechen.)

Es gibt nur ein paar Dinge;) Sie können nicht vernünftigerweise innerhalb einer Batch-Datei tun. Kannst du VB-Skripte, Java-Skripte, einige Powershell-Aufrufe oder irgendetwas anderes einbinden, um mit den schwierigen Dingen fertig zu werden?

+0

Ich überlege, die Hauptfunktionalität (Erstellen von IIS virtuellen Verzeichnissen, Datenbanken usw.) in .net 1.1-Anwendungen zu bündeln und alles mit Skripten zu kleben. Ich weiß nicht, ob sie viel helfen werden ... Vielleicht sollten wir unseren eigenen Installer-Antrag (.net) schreiben, aber wir sind dann wieder auf Platz eins. – Nippysaurus

+0

F1: Warum können Sie ein vorhandenes Installationsprogramm nicht kaufen/verwenden? Q2: Wie viel kostet es, um Ihre eigenen zu bauen? (Ganz gleich, wie einfach das in diesem Thread besprochene System ein Installer ist.) Zählen Sie Stunden für die Entwicklung von AND-Tests und Debugging auf. Wie viele Stunden? Times $ pro Stunde pro Entwickler/Tester? Vergessen Sie verlorene Zeit für unvermeidliche Probleme bei der Erstbenutzung des neuen Systems. F3: Warum können Sie einen vorhandenen Installer nicht kaufen/verwenden, wenn Sie dies nicht tun? (Alle meine Skripte waren kurz und für ein kleines Zielset und waren daher kostengünstig.) –

1

Ich sehe kein Problem mit solchen Sachen mit einer Batch-Datei. Allerdings müssen Sie sich überlegen, welche Unterschiede zwischen Rechnern (fehlende Verzeichnisse, bereits existierende Verzeichnisse, bereits existierende Dateien, Dateiversionen, etc.) bestehen können, sie ansprechen und wirklich gut auf einem Vielzahl von Maschinen.

Es ist schade, dass Sie kein Installationsprogramm verwenden können, da die meisten Probleme von den Installationsprogrammen bereits für Sie gemildert werden. Im Wesentlichen rollen Sie Ihren eigenen Installer, und Sie profitieren nicht von Lektionen, Best Practices usw., die Ihnen ein Installer geben wird.

Eine weitere Sache, die Sie möglicherweise ohne ein Installationsprogramm nicht durchführen können, ist die Installation einer Datei, die vom Betriebssystem gesperrt wird. Installationsprogramme gehen damit um, indem sie die Datei an einen temporären Speicherort kopieren, den Eintrag "Load on restart" (Neu laden) in die Registrierung laden und den Benutzer auffordern, den Computer neu zu starten.