Domanda

Sto progettando un procedue per liberare il nostro software per i nostri clienti che utilizzano una versione avanzata di una procedura esistente che utilizza script finestre batch. Spero di migliorare questo processo e automatizzare l'installazione dei seguenti elementi:

  • File. I file vengono copiati semplicemente a una destinazione.
  • MSSQL Database. Credo che userò il comando OSQL per eseguire questi contro una base di dati.
  • directory virtuali IIS. le versioni server di Windows in genere hanno il toolkit di IIS installata che ha alcuni strumenti per la creazione di directory virtuali e quant'altro da linea di comando in modo da userò questo. Credo che il "iiscnfg" è quello che ho utilizzare per inserire file di configurazione precedentemente salvati in IIS .
  • Servizi di Windows. I nostri servizi hanno la possibilità di installare themself dalla linea di comando.

Quindi, per ogni distribuzione delle applicazioni che ho una struttura come questa:

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

Quindi, in pratica si apre un terminale e del CD alla directory Uscite, eseguire un comando simile al seguente:

get-release "Release3"

che verrà eseguito una serie di comandi su tutte le applicazioni nella directory Release3 e copiare tutti i file, configurazioni, installare tutti i database e IIS directory virtuali.

C'è un po 'di più che lo fa come il backup della directory di destinazione per i file, ecc, ma la sua irrilevante per il momento.

La mia domanda è se qualcuno ha qualche esperienza facendo una distribuzione come questo e se c'è qualche errore che posso imparare da altre esperienze popoli.

Purtroppo non possiamo andare con pacchetti MSI o che NullSoft uno (che è il nome mi sfugge per il momento). Se la sua non è fatto come questo è fatto manualmente, quindi sono veramente cercando di aiutare me stesso qui.

È stato utile?

Soluzione

Ho rotolato diversi script come questo, e le parti più brutte da affrontare sono la gestione degli errori - come si fa a rilevare gli errori, cosa fai quando si verificano, si può eseguire il rollback tutte le modifiche apportate fino ad oggi, e così sopra. Relativamente semplice se si sta facendo una nuova installazione, non così semplice se si sta aggiornando un sistema esistente. (Non si dovrebbe mai supporre che funzionerà perfettamente ogni volta -. Aggiornamento MS di domani potrebbe rompersi sceneggiatura di oggi, dopo tutto)

Ci sono solo alcune delle cose;) non si può ragionevolmente fare all'interno di un file batch. Si può scivolare in script VB, script java, alcuni PowerShell chiama, o qualsiasi altra cosa per gestire le cose difficili?

Altri suggerimenti

Non vedo alcun problema con il fare le cose come questo con un file batch. Tuttavia, si sta andando ad avere per dare qualche pensiero a ciò che alcune delle differenze tra le macchine (directory mancanti, le directory già esistenti, i file già esistenti, versioni dei file, ecc) potrebbe essere, affrontarle, e la prova davvero bene su una varietà di macchine.

E 'un peccato non è possibile utilizzare un programma di installazione, in quanto gli installatori già mitigano la maggior parte di questi problemi per voi. In sostanza, ti verrà posizionare il proprio installatore, e non potranno beneficiare di lezioni apprese, le migliori pratiche, ecc, che un programma di installazione vi darà.

Un'altra cosa che potrebbe non essere in grado di fare a meno di un programma di installazione è installare un file che viene bloccato dal sistema operativo. Installatori affrontare questo copiando il file in una posizione temporanea, mettendo un "carico al riavvio" l'ingresso nel Registro di sistema e chiede all'utente di riavviare il computer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top