2010-09-03 13 views
6

Sto lavorando a un'app Web ASP.Net MVC in VS 2010. Voglio eseguire l'app Web nel mio IIS 7 locale sotto il proprio Web. Ho il mio file hosts impostato in modo che * .dev punti al mio ip locale, quindi quando creo un web IIS posso solo dargli un nome host unico come myapp.dev e viene eseguito.Visual Studio 2010 - Come pubblicare su IIS locale durante la compilazione

Questo è il mio primo progetto di applicazione Web con VS e sto cercando di capire come rendere VS pubblicare il codice di app Web sul mio Web locale quando premo build. Ho già pubblicato la parte di pubblicazione ma voglio automatizzarla. Potrei anche aggiungere che ho un paio di livelli diversi (librerie di classi) che devono anche creare e pubblicare tutto in una volta.

In sintesi, quello che voglio succedere è dopo aver apportato le modifiche al codice. Voglio fare clic su Ricostruisci soluzione o ricostruisci progetto e dopo la compilazione di successo voglio che i file che sono stati modificati siano pubblicati nella web root che ho impostato per questo particolare web app nel mio IIS locale. Quindi posso semplicemente aggiornare il browser per testare le mie modifiche.

Esistono tutorial su questo tipo di configurazione a cui qualcuno può farmi riferimento?

+1

Perché pubblicare? Perché non puntare IIS al tuo codice sorgente? –

+0

John, come funziona questo per i progetti di applicazioni Web? Ho fatto questo per i progetti di siti Web ma ho pensato che i WAP fossero un animale diverso. La mia app è un progetto MVC 2. – JBeckton

risposta

2

Anche se sto usando il 2008 ho trovato molto più facile usare NAnt per costruire e pubblicare. Ti consente una maggiore flessibilità e puoi usarlo per pubblicare sul tuo sito locale e di produzione.

3

Questo ha finito per essere molto più semplice di quanto pensassi. Con VS 2010 c'è una nuova funzionalità chiamata "One Click Publish" e c'è anche una barra degli strumenti per questo. Avevo già creato un profilo di pubblicazione per il mio iis web locale, quindi tutto quello che devo fare è fare clic su Pubblica! Tutti i progetti nella soluzione sono quindi costruiti e pubblicati. Finché i progetti sono tutti impostati come dipendenti, vengono creati e pubblicati insieme al progetto web.

Ora tutto ciò di cui ho bisogno è un tasto di scelta rapida per un clic pubblicato e sono tutto pronto.

Immagino che se avessi definito ulteriori attività di compilazione nel file csproj, tutto ciò che sarebbe stato eseguito anche.

5

Si sta tentando di utilizzare IIS anziché il server Web di sviluppo ASP.NET durante lo sviluppo? In tal caso, è possibile accedere alle impostazioni del progetto Web e quindi alla scheda Web per modificare il server Web di sviluppo in IIS e specificare un URL. In questo modo non è necessario pubblicare nulla, la directory virtuale punta alla cartella del progetto. Quindi, quando compili ed esegui la tua applicazione web, raccoglierà ogni cambiamento. Se questo non è ciò che si desidera, è possibile utilizzare lo strumento da riga di comando msdeploy nel passaggio post-generazione per creare e distribuire/aggiornare la propria applicazione Web su IIS locale. In questo modo ogni volta che si crea, msdeploy eseguirà e aggiornerà IIS con le modifiche.

+0

L'ho preso in considerazione, ma non desidero eseguire la mia app in una directory virtuale http: // localhost/myapp /, essendo nuova ad ASP.Net ho faticato con i percorsi a varie risorse quando si passa da dev alla produzione. L'esecuzione del mio sito dev nella radice Web come farei nella produzione mi aiuta solo a gestirlo. – JBeckton

0

Essendo nuovo ASP.NET, ti suggerisco di guardare a Url.Content per i collegamenti di pubblicazione (se si utilizza MVC) o System.Web.VirtualPathUtility.ToAbsolute("~/...") (se non) e fare uso giudizioso della tilde per evitare di affrontare gli effetti collaterali di pubblicazione un sito con radici diverse. Imparando questo si aprirà la possibilità di utilizzare alcuni dei suggerimenti sopra riportati (indicando IIS nella directory del progetto per uno).

L'altra opzione è aprire il file di progetto e lavorare con il target di build AfterBuild. Scompattarlo e aggiungere un'attività di aspnetcompiler insieme a un'attività di pubblicazione comporterà anche la stessa operazione e se si sta eseguendo la pubblicazione con un solo clic, è anche possibile separare le attività di compilazione in base a $ (configurazione) specificando una condizione.

Ti suggerisco anche di leggere come personalizzare le build per i progetti web. Ci sono numerosi articoli già scritti che ti faranno stare bene sulla tua strada.

Problemi correlati