2015-12-03 13 views
25

Sto calciando le gomme nell'anteprima per il nuovo sistema di gestione delle release di Visual Studio Team Services. Il mio scenario è un sito web classico (ASP.NET 4.5) con un repository Git ospitato in VSTS. La definizione di compilazione va a buon fine come si vede qui:Distribuzione di build WebSite in Azure da VSTS Release Management

enter image description here

Si è impostato per pubblicare come un artefatto che può essere raccolto da Release Manager come illustrato di seguito:

enter image description here

Sul Responsabile di rilascio lato Ho collegato correttamente questo artefatto come mostrato qui:

enter image description here

E qui puoi vedere le mie ambienti e le attività associate (tutti e 3 sono cloni)

enter image description here

Quando eseguo il rilascio build pubblica ammenda, si connette al mio abbonamento, ma quando si tenta di trova file il pacchetto ha il seguente errore sulla linea 101 del registro di output:

"Nessun file sono stati trovati per distribuire il modello di ricerca 'C:. \ a \ 4fe43dd1a *** zip'"

Ecco l'output completo:

enter image description here

Questo è dove mi sono bloccato, come ho assunto il mio link manufatto tramite VSTS dovrebbero risolvere questo percorso per me. Ovviamente mi manca un pezzo importante del puzzle da qualche parte, ma ho seguito la documentazione disponibile nel miglior modo possibile.

Se qualcuno ha una soluzione o può indicarmi la giusta direzione, sarebbe molto apprezzato!

--- EDIT ---

ho usato il selettore file per selezionare un pacchetto Web Deploy (vedi sotto). Ho provato a utilizzare il sito Web di root e la cartella bin. Entrambi i tentativi si traduce in un errore che indica: "Nessun file sono stati trovati da distribuire con ricerca del modello 'C: \ a \ 4fe43dd1a \ classico sito web Definizione \ goccia \ ClassicWebsite \ bin'"

enter image description here

- - EDIT 2 ---

ho aggiunto un compito MSBuild al mio processo di compilazione con le seguenti MSBuildArguments

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

e nel mio lavoro Copia/Pubblica risorse ho limitato il mio output solo alla copia di file .zip. Ora nel mio processo di RILASCIO quando navigo per trovare un "Pacchetto Web Deploy" la cartella "rilascia" è vuota.Ecco uno screenshot:

enter image description here

Credo di essere sulla strada giusta, ho solo bisogno di aiuto per capire per sintonizzare i miei compiti build per generare i manufatti giusti per il mio processo di rilascio per l'uso. Qualsiasi aiuto sarebbe apprezzato.

risposta

23

Il pacchetto di distribuzione non viene copiato nella cartella artefatti. Ecco perché la gestione delle versioni non riesce a trovare il pacchetto. L'impostazione di "Copia e pubblica artefatti di costruzione" di seguito dovrebbe risolvere il tuo problema: VSTS Copy and Publish Artifacts drop build step

+1

Ha funzionato! Grazie Eddie! – CodeAbundance

+0

Credo che il problema relativo all'attività ** Publish Build Artifacts ** sia stato risolto a partire dal 1/5/16. –

+0

@JoshuaDrake grazie !, c'è un link/articolo sulla loro correzione? – password

4

Modifica $(System.DefaultWorkingDirectory) a $(Agent.ReleaseDirectory). Gli artefatti verranno inseriti in quella cartella. Non conosco esattamente le mappe di $(System.DefaultWorkingDirectory), ma la mia impressione è che si tratti di qualcosa al di fuori della cartella utilizzata dall'agente per il rilascio.

Assicurati inoltre che le risorse pubblicate contengano il file zip previsto: se il pacchetto di distribuzione non viene creato, o se non stai pubblicando la cartella di output che contiene il pacchetto, ovviamente non sarai in grado per rilasciarlo più tardi.

Quando si crea l'applicazione Web, accertarsi che funzioni per la distribuzione utilizzando gli argomenti MSBuild che lo impacchettano. Qualcosa del genere dovrebbe funzionare:

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

+0

Grazie Daniel. Ho apportato questa modifica e in entrambi i casi il percorso è stato risolto in: "C: \ a \ 4fe43dd1a \" - Ho quindi utilizzato il selettore di file accanto a quella casella di testo e ho potuto navigare nel mio progetto all'interno della cartella "rilascia" creata dal mio processo di costruzione. Credo di dover solo indicare la strada giusta, ma non sono sicuro di quale. Ho provato a puntarlo su "$ (System.DefaultWorkingDirectory) \ Classic Website Definition \ drop \ ClassicWebsite" e su "$ (System.DefaultWorkingDirectory) \ Classic Website Definition \ drop \ ClassicWebsite \ bin" ma in entrambi i casi ottengo "No file trovati da distribuire "ma i file di progetto ci sono ... – CodeAbundance

+0

Ho modificato la mia risposta per mostrare il nuovo tentativo. – CodeAbundance

+0

La cartella 'bin' contiene effettivamente il file zip che si sta tentando di distribuire? –