Condividi tramite


Creazione di script di distribuzione per i flussi di lavoro di 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 che copiano la vostra compilazione ai computer nell'ambiente lab.Se la vostra compilazione include un pacchetto di installazione, è anche possibile utilizzare script di distribuzione per eseguire il pacchetto di installazione.Quando si crea il flusso di lavoro di compilazione-distribuzione-test, aggiungere i controlli al flusso di lavoro che esegue gli script di distribuzione.Quando si esegue il flusso di lavoro, il controller di compilazione esegue i comandi nella directory di lavoro nei computer specificati nell'ambiente lab.

Vedere la proprietà Procedura: creare un flusso di lavoro di compilazione, distribuzione e test per un ambiente SCVMM o Procedura: creare un flusso di lavoro di compilazione, distribuzione e test per un ambiente standard.In queste sezioni viene illustrato come creare e utilizzare gli script di distribuzione con il vostro flusso di lavoro di compilazione-distribuzione-test:

  • Preparazione dei file di compilazione per la distribuzione

  • Scrittura dei vostri script di distribuzione

  • Compilare i vostri script di distribuzione

  • Impostare le cartelle di lavoro

  • Aggiungere script di distribuzione al vostro flusso di lavoro

    1. Variabili incorporate

Requisiti

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

Preparazione dei file di compilazione per la distribuzione

La modalità che si sceglie per installare l'applicazione determinerà le attività principali che i vostri script di distribuzione devono eseguire.Installare l'applicazione potrebbe coinvolgere solo la copia di un file EXE ad un computer client, oppure l' esecuzione di un pacchetto di distribuzione per installare i file su più computer.Nella tabella seguente vengono descritte queste attività per ogni tipo di distribuzione.

Nota importanteImportante

Se la vostra applicazione si basa su software prerequisiti che non sono installati o configurato dai vostri script di distribuzione prima che l'applicazione venga distribuita, è necessario installarli durante la preparazione dei computer dell'ambiente lab.Se si utilizza un ambiente SCVMM che implementa un ambiente snapshot, è necessario assicurarsi che gli snapshot abbiano i prerequisiti software installati.

Tipo di installazione

Descrizione

Pacchetti di distribuzione servizio Web

Nota di avvisoAttenzione
Se si sviluppa un'applicazione che utilizza IIS, il server IIS del vostro ambiente lab devono avere il servizio agente distribuzione Web configurato prima di distribuire l'applicazione.

I vostri script di distribuzione devono prima copiare i file di compilazione e il pacchetto di distribuzione nei computer designati dell'ambiente lab, quindi eseguire il pacchetto di distribuzione.A questo scopo, potrebbe essere necessario passare un nome di dominio, un nome di account del servizio e un nome di server TFS allo script di distribuzione come parametri.Questo tipo di installazione in genere richiede di installare e configurare il software essenziale come un server web o un server database prima di distribuire l'applicazione.La configurazione di software prerequisiti potrebbe richiedere specifiche attività che consentono la distribuzione delle applicazioni sul computer di destinazione.Ad esempio, se l'applicazione utilizza IIS, il server IIS nell'ambiente lab deve avere il servizio agente distribuzione Web configurato prima di distribuire l'applicazione.

File di compilazione senza pacchetto di installazione

I vostri 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 implementa un pacchetto di installazione con il flusso di lavoro di compilazione-distribuzione-test, gli script di distribuzione devono gestire qualsiasi input dell'utente che potrebbe essere generato durante l'esecuzione del pacchetto di installazione o la vostra distribuzione di applicazione fallirà.

I vostri 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 vostro pacchetto di installazione, devono assicurarsi che sia un'installazione invisibile all'utente.L'input dell'utente richiesto dall'installazione deve essere gestito dagli script di distribuzione.Questo include le credenziali.Se i vostri script di distribuzione non gestiscono tutti gli input generati dall'utente durante l'esecuzione del pacchetto di installazione, la distribuzione di applicazione fallirà.Se non si sta distribuendo un'applicazione web e si richiede un pacchetto di installazione per la distribuzione, si consiglia di utilizzare un pacchetto di installazione di InstallShield.Per informazioni su InstallShield, vedere Windows Installer Deployment.

Scrittura dei vostri script di distribuzione

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

  • Ottenere il percorso di compilazione sul controller di compilazione.È possibile inviare questo allo script di distribuzione come argomento passato dalla riga di comando.

  • Specificare il percorso di distribuzione.

  • Creare la directory di distribuzione.È inoltre possibile eseguire questa operazione manualmente, anziché nello script di distribuzione.Se si utilizza uno snapshot ambiente pre-distribuzione con il vostro flussodi lavoro, è sufficiente creare le directory sulle macchine virtuali nell vostro snapshot.

  • Copiare il vostro 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 fornite 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

Compilare i vostri script di distribuzione

Dopo aver creato i vostri script di distribuzione, è necessario archiviarli nel controllo della versione e configurarli, in modo da copiarli all'output di compilazione.Per compilare i vostri script di distribuzione, è necessario come prima cosa verificare che siano archiviati nel progetto di Visual Studio e non solo nella vostra soluzione.È possibile eseguire questa operazione in Visual Studio selezionando il vostro script di distribuzione in Esplora soluzioniquindi in Proprietà, modificando Copia directory di output a Copia sempre.

Impostare le cartelle di lavoro

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

Nota importanteImportante

Non creare le directory di lavoro utilizzando 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 esse.

Se si specifica una directory di lavoro, è necessario assicurarsi che la directory sia creata prima che gli script di distribuzione copino qualsiasi file in essa.Non creare le directory di lavoro con i comandi utilizzati 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 esse.Per assicurarsi che una cartella di lavoro venga creata prima che gli script di distribuzione copino i file in essa, è necessario creare manualmente la directory nei computer interessati nel vostro ambiente lab; in alternativa, la directory deve essere creata dagli script di distribuzione prima che qualsiasi comando copi i file.

Aggiungere script di distribuzione al vostro flusso di lavoro

Aggiungere i controlli della shell di Windows al flusso di lavoro di compilazione-distribuzione-test per distribuire la vostra applicazione all'ambiente lab.Se si utilizzano gli script di distribuzione, i comandi devono copiare i vostri script di distribuzione dal vostro controller di compilazione alla cartella di lavoro nei computer di destinazione e quindi eseguire gli script di distribuzione.Tuttavia, per installazioni semplici di applicazione che includono solo la copia di tutti i file nella cartella di lavoro, è possibile utilizzare i comandi della shell nel vostro 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 utilizzando cmd /c.Ad esempio, il comando cmd /c $(BuildLocation)\copyexe $(BuildLocation) dove copyexe è un file batch copyexe.bat, copia un file eseguibile in una directory locale nella macchina virtuale.

Variabili predefinite: Quando si aggiungono questi comandi al flusso di lavoro di compilazione-distribuzione-test, è possibile utilizzare le 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 vengono individuati, o la locazione della compilazione—se è configurata nel flusso di lavoro di compilazione-distribuzione-test.Utilizzare questa variabile per accedere al vostro file di compilazione.

  • $(InternalComputerName <VM Name>)
    Il nome del computer per una macchina virtuale in un ambiente SCVMM.Utilizzare questa variabile per accedere ad un host della 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, occorrerebbe digitare $(InternalComputerName_VM1) come argomento per vostro script, per passare il valore MyWebServer allo script.

  • $(ComputerName <VM Name>)

    [!NOTA]

    Isolamento di rete negli ambienti SCVMM: se si utilizza l'isolamento rete per il vostro 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.Utilizzare questa variabile per accedere ad un computer all'esterno di un ambiente SCVMM.Potreste voler passare questa variabile come argomento per configurare un server Web.Ad esempio, se il nome della macchina virtuale per il server Web fosse VM1, è possibile accedere al nome di dominio completo della macchina virtuale passando l'argomentoo $(ComputerName_VM1) al vostro script di distribuzione.

Vedere anche

Concetti

Impostazione dei flussi di lavoro di compilazione, distribuzione e test automatizzati