5

Ho una soluzione con pochi progetti, di cui 3 basati su Web (WCF nel sito IIS/MVC). Quando la soluzione viene creata, scarica ciascuno dei componenti di questo sistema distribuito in una cartella 'Build'. L'esecuzione della parte "configuratore" dell'intero output configurerà automaticamente il sistema nel cloud. È molto pulito :) Tuttavia, i progetti di distribuzione Web sono un grande problema. Loro "costruiscono" (cioè distribuiscono) ogni, singolo, tempo che costruisco - anche quando non sono state apportate modifiche ai rispettivi progetti.Migliore alternativa ai progetti di distribuzione Web

Cambiato una singola riga di codice? Attendo con impazienza di attendere circa un minuto affinché i 3 progetti Web vengano riassegnati.

[Questi progetti sono molto semplici in questo momento - due hanno un unico .svc e un file Ashx - l'altro è un app MVC con ~ 5 views]

mi rendo conto che posso cambiare configurazioni della soluzione per non li "costruisco", ma lo sto facendo ed è molto facile collegarsi il giorno successivo e non pensarci più e passare un paio di ore a rintracciare i bug nei sistemi distribuiti a causa di qualcosa che semplicemente non è stato creato.

Perché utilizzo progetti di distribuzione Web? Bene, perché ho bisogno di tutte le pagine + binari dal progetto web. L'output di build per il progetto stesso è la cartella 'bin', quindi nessuna pagina. L'intera cartella del progetto? Ha .cs, .csproj e altri file che non voglio includere.

Alla fine questo sarà costruito sui server di creazione, ma al momento è locale. Ma voglio un modo rapido per ottenere i file di output effettivi dal progetto web nella mia cartella di destinazione. Qualche idea?

risposta

2

Alla fine ho creato un'utilità/strumento che, dato un file di progetto, XCOPYies la cartella del progetto per il progetto Web in una posizione di destinazione, quindi guarda nel suddetto file di progetto ed elimina tutto ciò che non ha impostato Azione di costruzione al contenuto. Molto veloce ed efficace.

+1

+1, perché è quello che ho fatto ultimamente. Rimuove molta magia ed è semplice e automatizzato. – Kugel

1

So che è ancora in RC ma VS2012 ha una caratteristica precisa quando si fa pubblicare che rileva le modifiche e pubblica solo quelle. Potrebbe essere qualcosa di un po 'più profondo nella build dove viene pubblicata automaticamente.

2

Non sono sicuro se questo aiuterà nella vostra situazione, (spina per il proprio progetto in arrivo), ma sto lavorando su un progetto per contribuire a facilitare IIS implementazioni:

https://github.com/twistedtwig/AutomatedDeployments

L'idea è che puoi utilizzare i file di configurazione per IIS (pool di app, applicazioni e siti Web) per automatizzare la creazione e l'aggiornamento dei siti in locale (macchine di sviluppo) o in remoto (macchine di prova e di produzione).

È ancora un lavoro in corso ma è pronto per essere utilizzato nei sistemi di produzione.

utilizzando la creazione del pacchetto come una fase di post build potrebbe avvicinarsi a ciò che si desidera, (non credere che includa tutti i file aggiuntivi), ma che comunque lo costruirà ogni volta, (anche se il codice non ha t cambiato non dovrebbe ricostruire a meno che non si scelga di ricostruire tutti i progetti).

0

È possibile dare un'occhiata al progetto Octopus: http://octopusdeploy.com/ Distribuzione basata su pacchetti di nuget.