2015-11-24 7 views
12

Il mio team utilizza Visual Studio Team Services per gestire il nostro codice sorgente in un repository TFS. La soluzione contiene più app Web. Sto cercando di configurare l'integrazione continua e la distribuzione continua per questa soluzione in modo tale che ogni applicazione Web venga distribuita nell'app Web di Azure corretta dopo una compilazione corretta. Ho configurato BuildDefinition per creare $/MyProduct/MAIN/MySolution.sln. Ho definito i seguenti parametri per MSBuild sulla base di alcuni articoli di MSDN che ho trovato su questo argomentoutilizzando i servizi del team di Visual Studio per creare una soluzione contenente più app Web e distribuire queste app Web in azzurro

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.stagingDirectory)" 

La build passaggi includono un passo Studio Corporatura visiva, un passo di prova di Visual Studio (attualmente disabilitata per ridurre al minimo la complessità), un passo Origini indice e simboli di pubblicazione (che non credo proprio di aver bisogno) e, infine, un passaggio Artefatti Copia e Pubblica.

Sono in grado di creare questa soluzione utilizzando questa configurazione. Riesco a vedere i risultati di costruzione, il registro di build, i dettagli di build, ecc. Quando guardo le risorse create, vedo due elementi: "drop" e "build.sourceLabel" Se esploro il file di rilascio usando l'Esplora risorse , Trovo tutti i miei progetti in questo file di rilascio e, per i progetti di app Web, posso navigare nella cartella webapp1 \ obj \ QA \ Package \ PackageTemp \ bin e vedere tutte le DLL ecc. Per l'app web.

Quello che non vedo è un file zip per app Web, che è ciò che la funzione di rilascio di Visual Studio Team Services è in attesa.

Vorrei sapere come modificare la configurazione corrente in modo da poter generare le risorse corrette dal passaggio Genera in modo da poter creare le attività di distribuzione dell'app Wipe di rilascio corrette per distribuire ogni app Web nell'app Web corretta in il mio ambiente

Tutto ciò viene eseguito con Visual Studio 2015 e Visual Studio Online (Team Services).

risposta

22

Per testare la situazione, ho utilizzato Visual Studio 2015 e creato 3 nuovi progetti Web nella stessa soluzione e controllato in VSTS. Ho quindi creato una nuova build utilizzando il modello di implementazione del sito Web di Azure. A molte persone manca la presenza di modelli di Build and Deployment nella finestra di dialogo Create New Build Definition. Il motivo per cui utilizzo il modello di sito Web di Azure è perché non riesco a ricordare gli argomenti di msbuild da inoltrare. È sufficiente eliminare l'attività di distribuzione di App Web di Azure se si intende utilizzare RM.

Una modifica apportata sempre agli argomenti di msbuild è la PackageLocation. Io cambio sempre il mio in $ (BuildConfiguration). In questo modo, posso creare contemporaneamente Debug e Release nello stesso momento.

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(BuildConfiguration)" 

Finalmente posso cambiare la mia copia e pubblicare costruire compito Artefatti per cercare solo “** \ *. Zip”. Lascia vuoto il Copy Root ed esegui la build. Al termine della creazione, si avrà un unico zip per progetto sotto [NomeProgetto]/[Configurazione] /projectName.zip quando si esplorano i propri artefatti.

enter image description here

Se avete ulteriori domande mi si può eseguire il ping su Twitter @DonovanBrown

+0

Grazie per la risposta ... ho fatto qualche ulteriore ricerca e ha scoperto che con un nuovo progetto/soluzione/webapp, ho puoi farlo funzionare come hai descritto tu. Sto pensando che il vero problema è che i nostri progetti e soluzioni sono stati creati in VS2013 e .NET 4.0 e poi migrati/aggiornati/ecc. Il semplice fatto è che i file .sln e .csproj vengono creati localmente, ma non in VSO. Creerò nuovi progetti e file di soluzione e vedremo se ciò produce risultati migliori. –

+0

@MichaelSchulz Sto incontrando lo stesso problema, la soluzione creata in VS2013 e non la costruzione in VSO. Qualche idea su come risolvere questo problema? – TWilly

+0

Risposta molto buona per Visual Studio Online RM – user3447136

Problemi correlati