Condividi tramite


Creazione di script di distribuzione per i flussi di lavoro compilazione, distribuzione e test

Per distribuire l'applicazione con un flusso di lavoro di compilazione-distribuzione-test, è necessario creare script di distribuzione e aggiungerli alla compilazione. Gli script di distribuzione sono file con estensione CMD o BAT tramite i quali la compilazione viene copiata nei computer dell'ambiente lab. Se la compilazione include un pacchetto di installazione, è possibile usare gli script di distribuzione anche per eseguire il pacchetto di installazione. Quando si crea il flusso di lavoro di compilazione-distribuzione-test, aggiungervi i comandi per eseguire gli script di distribuzione. Quando il flusso di lavoro viene eseguito, il controller di compilazione esegue i comandi nella cartella di lavoro nei computer specificati nell'ambiente lab.

Vedere Creare un flusso di lavoro compilazione, distribuzione e test per un ambiente SCVMM o Creare un flusso di lavoro compilazione, distribuzione e test per un ambiente standard. In queste sezioni viene illustrato come creare e usare gli script di distribuzione con il flusso di lavoro di compilazione-distribuzione-test:

  • Preparazione dei file di compilazione per la distribuzione

  • Scrittura degli script di distribuzione

  • Compilazione degli script di distribuzione

  • Impostazione delle cartelle di lavoro

  • Aggiunta degli script di distribuzione al flusso di lavoro

Per altri esempi, vedere Automazione dei test di sistema

Requisiti

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Preparazione dei file di compilazione per la distribuzione

La modalità scelta per installare l'applicazione determina le attività principali che dovranno essere eseguite dagli script di distribuzione. L'installazione dell'applicazione potrebbe consistere solo nella copia di un file EXE in un computer client oppure nell'esecuzione di un pacchetto di distribuzione per installare i file in più computer. Nella tabella seguente vengono descritte queste attività per ogni tipo di distribuzione.

Importante

Se l'applicazione si basa su software prerequisito non installato e configurato tramite gli script di distribuzione prima che l'applicazione venga distribuita, è necessario installarlo durante la preparazione dei computer nell'ambiente lab.Se si usa un ambiente SCVMM in cui vengono distribuiti snapshot di ambiente, è necessario assicurarsi che gli snapshot includano il software prerequisito.

Tipo di installazione

Descrizione

Pacchetto di distribuzione servizio Web

Nota di avvisoAttenzione

Se si distribuisce un'applicazione in cui viene usato IIS, sul server IIS nell'ambiente lab deve essere configurato il Servizio Agente distribuzione Web per poter distribuire l'applicazione.

Gli script di distribuzione devono copiare i file di compilazione e il pacchetto di distribuzione nei computer di destinazione nell'ambiente lab, quindi eseguire il pacchetto di distribuzione. A questo scopo potrebbe essere necessario passare come parametri un nome di dominio, un nome di account del servizio e un nome di server TFS allo script di distribuzione. Per questo tipo di installazione è in genere necessario installare e configurare manualmente il software prerequisito come server Web o server di database prima di distribuire l'applicazione. La configurazione del software prerequisito potrebbe richiedere specifiche attività per abilitare la distribuzione dell'applicazione sul computer di destinazione. Ad esempio, se nell'applicazione viene usato IIS, sul server IIS nell'ambiente lab deve essere configurato il Servizio Agente distribuzione Web per poter distribuire l'applicazione.

File di compilazione senza pacchetto di installazione

Gli script di distribuzione devono copiare l'applicazione e i file di compilazione nei computer di destinazione dell'ambiente lab.

Pacchetto di installazione

Nota di avvisoAttenzione

Se si distribuisce un pacchetto di installazione con il flusso di lavoro di compilazione-distribuzione-test, gli script di distribuzione devono gestire qualsiasi input dell'utente generato durante l'esecuzione del pacchetto di installazione; in caso contrario, la distribuzione dell'applicazione non riesce.

Gli script di distribuzione devono copiare il pacchetto di installazione nei computer di destinazione dell'ambiente lab e quindi eseguire il pacchetto di installazione. Quando gli script di distribuzione eseguono il pacchetto di installazione, è necessario che l'installazione sia invisibile all'utente. L'input dell'utente richiesto dall'installazione deve essere gestito dagli script di distribuzione, credenziali incluse. Se gli script di distribuzione non gestiscono tutti gli input generati dall'utente durante l'esecuzione del pacchetto di installazione, la distribuzione dell'applicazione non riesce. Se non si sta distribuendo un'applicazione Web e si richiede un pacchetto di installazione per la distribuzione, si consiglia di usare un pacchetto di installazione InstallShield. Per informazioni su InstallShield, vedere Windows Installer Deployment.

Scrittura degli script di distribuzione

Queste sono le attività più comuni eseguite dagli script di distribuzione:

  • Ottenere il percorso di compilazione nel controller di compilazione. È possibile inviare questa informazione allo script di distribuzione come argomento di comando.

  • Specificare il percorso di distribuzione.

  • Creare la directory di distribuzione. Questa operazione può essere eseguita manualmente, invece che nello script di distribuzione. Se si usa uno snapshot di ambiente pre-distribuzione con il flusso di lavoro, è sufficiente creare la directory sulle macchine virtuali nello snapshot.

  • Copiare il pacchetto di distribuzione dal percorso di compilazione al percorso di distribuzione.

  • Eseguire il pacchetto di distribuzione nella directory di distribuzione.

I seguenti comandi illustrano alcune attività comuni eseguite dagli script di distribuzione.

REM set build path
set buildlocation=%1

REM set deployment path
set targetdir="C:\deploy"

REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)

REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%

REM if you are using a deployment package you can run it here, after you copy it to your deployment directory

Compilazione degli script di distribuzione

Dopo aver creato gli script di distribuzione, è necessario archiviarli nel controllo della versione e configurarli, in modo da copiarli nell'output di compilazione. Per compilare gli script di distribuzione, è necessario come prima cosa verificare che siano archiviati nel progetto di Visual Studio e non solo nella soluzione. Per eseguire questa operazione, in Visual Studio selezionare lo script di distribuzione in Esplora soluzioni, quindi in Proprietà modificare Copia in directory di output in Copia sempre.

Impostazione delle cartelle di lavoro

È possibile specificare una cartella di lavoro per ogni set di comandi aggiunti al flusso di lavoro di compilazione-distribuzione-test. Quando si specifica una cartella di lavoro, il controller di compilazione esegue i comandi specificati nella cartella di lavoro di ogni computer a cui è assegnato quel ruolo. Se non si specifica una cartella di lavoro quando si aggiungono i comandi al flusso di lavoro di compilazione test, il controller di compilazione eseguirà i comandi presenti nella cartella di lavoro predefinita C:\Windows\System32.

Importante

Non creare le cartelle di lavoro usando i comandi aggiunti al flusso di lavoro di compilazione-distribuzione-test; in caso contrario le directory non verranno create prima che gli script di distribuzione tentino di copiare i file in tali directory.

Se si specifica una cartella di lavoro, assicurarsi che la directory venga creata prima che gli script di distribuzione copino file al suo interno. Non creare le cartelle di lavoro con i comandi usati per aggiungere gli script di distribuzione al flusso di lavoro di compilazione-distribuzione-test. In caso contrario, le directory non verranno create prima che gli script di distribuzione tentino di copiare i file in tali directory. Per assicurarsi che una cartella di lavoro venga creata prima che gli script di distribuzione vi copino file, è necessario creare manualmente la directory nei computer di destinazione dell'ambiente lab; in alternativa, la directory deve essere creata tramite gli script di distribuzione prima che qualsiasi comando vi copi i file.

Aggiunta degli script di distribuzione al flusso di lavoro

Aggiungere comandi della shell di Windows al flusso di lavoro di compilazione-distribuzione-test per distribuire l'applicazione nell'ambiente lab. Se si usano gli script di distribuzione, i comandi devono copiare tali script dal controller di compilazione alla cartella di lavoro nei computer di destinazione e quindi eseguirli. Tuttavia, per installazioni semplici che richiedono la sola copia di qualche file nella cartella di lavoro, è possibile usare i comandi della shell nel flusso di lavoro senza specificare script esterni di distribuzione.

Se si desidera aggiungere un comando che viene eseguito da un prompt di Windows, ad esempio mkdir, o eseguire un file a batch, è necessario iniziare il comando usando cmd /c. Ad esempio, il comando cmd /c $(BuildLocation)\copyexe $(BuildLocation), dove copyexe è il file batch copyexe.bat, consente di copiare un file eseguibile in una directory locale di una macchina virtuale.

Variabili predefinite: quando si aggiungono questi comandi al flusso di lavoro di compilazione-distribuzione-test, è possibile usare variabili predefinite per identificare alcuni percorsi e computer. È anche possibile passare tali variabili agli script di distribuzione.

  • $(BuildLocation)
    Il percorso completo in cui si trovano i file di compilazione oppure la destinazione finale della compilazione, se configurata nel flusso di lavoro di compilazione-distribuzione-test. Usare questa variabile per accedere ai file di compilazione.

  • $(InternalComputerName_<Nome macchina virtuale>)
    Il nome del computer per una macchina virtuale in un ambiente SCVMM. Usare questa variabile per accedere a un host di macchina virtuale quando non si conosce il nome del computer dell'host. Se si dispone di uno script di distribuzione per configurare un server Web che richiede il nome del computer, è possibile passare la variabile come argomento allo script. Se, ad esempio, il nome della macchina virtuale per il server Web fosse VM1 e il nome del computer fosse MyWebServer, sarebbe necessario digitare $(InternalComputerName_VM1) come argomento per lo script, per passare il valore MyWebServer allo script.

  • $(ComputerName_<Nome macchina virtuale>)

    Nota

    Isolamento di rete negli ambienti SCVMM: se si usa l'isolamento di rete per l'ambiente SCVMM, il valore $(InternalComputerName_<VM Name>) è uguale per ogni istanza di una macchina virtuale in ogni copia dell'ambiente, ma il valore $(ComputerName_<VM Name>) è diverso.

    Il nome di dominio completo della macchina virtuale. Usare questa variabile per accedere a un computer all'esterno di un ambiente SCVMM. Si può decidere di passare questa variabile come argomento per configurare un server Web. Ad esempio, se il nome della macchina virtuale per il server Web è VM1, è possibile accedere al nome di dominio completo della macchina virtuale passando l'argomento $(ComputerName_VM1) allo script di distribuzione.

Vedere anche

Concetti

Flussi di lavoro compilazione, distribuzione e test automatici

Altre risorse

Automazione dei test di sistema