2015-11-10 21 views
6

Stiamo provando a utilizzare la nuova catena di strumenti per la creazione e la distribuzione di un sito Web CoreCLR ASP.NET 5 (vNext) su un cluster di server. Tra le nuove modifiche di compilazione e le modifiche a TFS, non sono sicuro di come tutto ora venga creato e implementato. Lo scenario è il seguente:ASP.NET 5 (vNext) Distribuzione tramite TFS 2015

  1. TFS on-premise per il controllo del codice sorgente e costruire agente
  2. Targeting ASP.NET 5 sotto CoreCLR, ospitato tramite IIS

Le domande sono:

Utilizzando TFS per le build di integrazione continua (e, si spera, la distribuzione su un server IIS on-premise), come si costruisce e distribuisce questo nuovo tipo di applicazione?

Sembra che MSBuild potrebbe essere ancora utilizzabile per indicare un file .sln in modo da richiamare indirettamente dnu.exe, è corretto? È questo il modo appropriato per farlo ora?

Dovremmo eseguire un'attività di compilazione con script invece di eseguire dnu.exe?

Come vengono distribuiti questi nuovi build CoreCLR? Solo una copia diretta in una directory su una macchina remota?

Questa è una nuova applicazione e stiamo utilizzando un'architettura di applicazione a più livelli, in cui la logica DAL e Business sono nei propri progetti CoreCLR, se ciò fa la differenza.

Grazie in anticipo per chiarire la situazione.

risposta

6

Ecco quello che abbiamo finito per fare:

  1. PowerShell script "prebuild.ps1" come per la precedente risposta e le linee guida di implementazione di Microsoft: https://msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5

  2. Vanilla MSBuild costruire. niente interruttori o impostazioni speciali.

  3. Script di PowerShell per eseguire xUnit test runner. Abbiamo utilizzato la guida di questo post allo http://fluentbytes.com/running-xunit-test-with-asp-net-dnx-and-tfs-2015-build/

  4. Script di PowerShell per eseguire "dnu publish". Questo crea una directory dell'intera struttura dell'applicazione web.

  5. Attività "Copia file di Windows" per distribuire la struttura di directory creata in # 4 a tutti i computer di destinazione nell'ambiente di test.

1

per creare e distribuire ASP.NET 5 con sistema di compilazione TFS2015 vNext, è necessario:

1). Creare uno script PowerShell (ad esempio Prebuild.ps1, ad esempio) per installare DNX. È possibile trovare i dettagli dello script PowerShell: https://msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5. Aggiungi il file di script nel controllo di versione TFS.

2). Aggiungi il passo di generazione dello script di PowerShell nella definizione di build. Eseguire lo script Prebuild.ps1 in questo passaggio:

enter image description here

3). Nel passaggio MSBuild, specificare il progetto che deve essere creato e aggiungere il seguente/p: DeployOnBuild = True/p: DeployTarget = MSDeployPublish/p: CreatePackageOnPublish = True/p: MSDeployPublishMethod = InProc/p: MsDeployServiceUrl = localhost/p: DeployIisAppPath = "Sito Web predefinito/TFSTest1" /p:VisualStudioVersion=14.0 per pubblicare il progetto su IIS.

+2

Spiacente, ma l'implementazione con msbuild è semplicemente sbagliata. Ci deve essere un passo msdeploy che prende lo stesso insieme di binari promossi e li spinge verso la destinazione. Se parameters.xml o powershell vengono utilizzati per finalizzare la configurazione è accademico. Al momento, TFS vNext standalone non è adatto alla corretta gestione dei rilasci e sono necessari alcuni elementi aggiuntivi come Octopus Deploy. –

+0

+1, totalmente d'accordo, e vorrei anche aggiungere che TFS non è (cl) che mira ad essere nello spazio di gestione del rilascio, e non dovrebbe essere (ab) usato come tale. Questo è il punto in cui i processi di rilascio relativi ai sistemi di compilazione degli elementi di configurazione diventano un incubo in tutto tranne che in un ambiente semplice e diretto. È qui che strumenti come Octopus Deploy entrano in gioco. –