2012-08-31 19 views
12

Per VS2010 e prima che stavo utilizzando Web Deployment Projects (WDP) per aiutare a pacchettizzare il mio sito Web per la distribuzione della produzione. Ho avuto uno script MSBuild che ha compilato la soluzione in modalità di rilascio. Un risultato di questo era i file del sito Web pronti per la produzione compilati e puliti dal WDP.Richiamare una pubblicazione da msbuild per visual studio 2012

Vedo che il 2012 WDP è stato rimosso e una nuova scheda è stata creata nelle proprietà per l'applicazione web. Le opzioni sono le stesse, ma ora l'invocazione di questa operazione viene eseguita tramite l'opzione Pubblica (prima di essere appena compilato in modalità di rilascio).

Quindi la domanda è questa. Da uno script MSBuild, come posso richiamare un'operazione di pubblicazione? Ho trovato alcuni vecchi post che ...

msbuild /target:publish 

farebbe il trucco. Ma questo non sembra funzionare nel 2012.

Inoltre, ho provato nel mio compito msbuild ...

<MSBuild Properties="Configuration=Publish;" 
     StopOnFirstFailure="true" 
     Projects="$(BuildDirectory)\MySolution.sln"></MSBuild> 

... ma msbuild appena riferito "configurazione sconosciuta".

Come è possibile che msbuild esegua l'opzione di pubblicazione dalla riga di comando?

+0

prova: http://stackoverflow.com/q/3097489/1162102 –

risposta

3

Non è stato possibile eseguire la pubblicazione, ma guardando l'output di Visual Studio penso di aver trovato una soluzione alternativa. Risulta che la cartella obj \ Release \ AspnetCompileMerge ha una versione deployabile e pulita del progetto. Contiene file identici a byte nella cartella di output finale.

Ho dovuto cambiare il mio script MSBuild per includere l'opzione DeployOnBuild ...

<MSBuild Properties="Configuration=Release;DeployOnBuild=True;" 
     StopOnFirstFailure="true" 
     Projects="$(BuildDirectory)\BigWave.ALL.sln"></MSBuild> 
17

Sembra che ora ci sono alcune altre opzioni per la pubblicazione dalla riga di comando. In particolare qualcosa sulla falsariga di quanto segue sembra possibile ora con alcuni aggiornamenti di RC per Visual Studio 2012.

msbuild mywap.csproj /p:DeployOnBuild=true;PublishProfile=MyProfileName 

Per ulteriori dettagli controllare this post by Scott Hanselman e controllare la sezione sulla Publishing.

+0

Potrebbe anche essere necessario aggiungere VisualStudioVersion = 11.0 a seconda della configurazione –

+0

Grazie per il @SebastianK feedback. Sai quando quella bandiera è necessaria? –

+1

Sì, ecco maggiori informazioni su quel parametro - nel mio caso ciò era necessario perché VS2010 era installato nella casella di compilazione: http://sedodream.com/PermaLink,guid,a5894bad-f2a1-441a-a5b2-74f16c6cf8aa.aspx –

Problemi correlati