Output di compilazione dell'applicazione Web ASP.NET: come è possibile includere tutti i file di distribuzione?

StackOverflow https://stackoverflow.com/questions/55323

Domanda

Quando costruisco il mio ASP.NET applicazione web ottengo un file .dll con il codice per il sito Web al suo interno (il che è fantastico), ma il sito Web ha bisogno anche di tutti i file e gli amici .aspx e questi devono essere inseriti nella struttura di directory corretta.Come posso ottenere tutto questo in una directory come risultato di ogni build?Cercare di scegliere i file giusti dalla directory di origine è una seccatura.

Il risultato finale dovrebbe essere xcopy distribuibile.

Aggiornamento: Non voglio dover utilizzare manualmente il comando Pubblica di cui sono a conoscenza.Desidero che l'intero set di file richiesto dall'applicazione sia l'output della build, ciò significa che ottengo anche l'intero set di file in un unico posto dall'esecuzione MSBuild.

È stato utile?

Soluzione

Una soluzione sembra essere Web Deployment Projects (WDP), un componente aggiuntivo disponibile per Visual Studio (e msbuild) che crea un progetto Web in una directory e può facoltativamente unire assembly e modificare il file web.config.L'output della creazione di un WDP sono tutti i file necessari per distribuire il sito in una directory.

Ulteriori informazioni sui progetti di distribuzione Web:

  1. Annuncio sul blog MSDN di webdevtools per il WDP 2008
  2. Introduzione di ScottGu al WDP 2005

L'unico svantaggio di questa soluzione è la necessità di un componente aggiuntivo che deve essere disponibile sulla macchina di costruzione.Comunque per ora va abbastanza bene!

Altri suggerimenti

ASP.NET non ha vero distribuzione xcopy per nuovo siti.Dipende dalla presenza di una directory/applicazione virtuale in IIS.Tuttavia, una volta creata la directory virtuale, è possibile utilizzare xcopy per gli aggiornamenti.

Puoi Pubblicare il sito Web..Se vuoi automatizzare la tua distribuzione, devi usarne alcuni sceneggiatura.

Hai provato a utilizzare aspnet_compiler.exe nella directory .net framework?Sono abbastanza sicuro che puoi creare una versione "pronta per la distribuzione" di un'applicazione Web o di un sito Web.

Il target _CopyWebApplication su MSBuild farà esattamente ciò di cui hai bisogno.Il problema è che solo l'assembly principale verrà copiato nella cartella bin ed è per questo motivo che è necessaria un'attività di copia per copiare anche qualsiasi altro file nella cartella bin.

Stavo cercando di pubblicare lo script di esempio come parte di questo post ma non ci sono riuscito.

Per favore, dai un'occhiata a questo articolo sul mio blog che descrive come creare uno script MSBuild simile a quello che ti serve.

Hai provato a fare clic con il pulsante destro del mouse sul sito Web in Esplora soluzioni e a fare clic su "Pubblica sito Web"?

Costruisci --> Pubblica

Apparirà una finestra di dialogo che ti guiderà attraverso il processo.

Per l'edificio automatizzato che descrivi nell'aggiornamento, ti consiglio di esaminarlo MSBuild E CruiseControl.NET

Dipende da quanto è complicata la soluzione di cui hai bisogno, potresti semplicemente usare uno script e Jenkins, ad esempio.Puoi utilizzare MSBUild con Jenkins solo per la distribuzione su un IIS.E se hai Jenkins, altri strumenti sono abbastanza facili da connettere in seguito.Ma se vuoi solo creare, usa uno script che Jenins esegue ogni build che utilizza MSDeploy e funzionerà benissimo.

Ecco come lo faccio, solo per darti un'idea:

Sonarqube utilizza Gallio, Gendarme, FXcop, Stylecop, NDepths e PartCover per ottenere le tue metriche e tutto questo è abbastanza semplice poiché SonarQube lo fa automaticamente senza troppe configurazioni.

Ecco la strega Jenkins che crea e ottiene le metriche Sonar e un altro lavoro per la distribuzione automatica su IIS.Utilizzo un semplice script di una riga che chiama il mio MSBuild e quale URL, passaggio e utente.

E Sonarqube, tutti i parametri per il mio progetto.Questa è una semplice app MVC4, ma funziona benissimo!:

Se vuoi maggiori informazioni posso fornirti una buona guida.

L'intera configurazione utilizza anche MSBuild per creare e distribuire le app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top