2012-09-12 24 views
10

Così quando si installa MVC in Visual Studio inserisce le DLL MVC nel GAC. Pertanto non è necessario che si trovino nel file system del progetto per consentire la realizzazione del progetto.Integrazione continua con ASP.Net MVC

Quando distribuiamo questo live e il nostro server di integrazione continua, le dipendenze richieste per MVC e Razor non sono nel controllo di versione. Abbastanza perché Microsoft ha reso questo così complicato è oltre me.

Sono uno per automatizzare tutto ciò che posso quindi mi chiedo quale sia il modo migliore per risolvere il problema delle DLL mancanti.

Ora per i progetti MVC ASP.Net ho risolto questo problema utilizzando la distribuzione bin come menzionato qui http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx sul blog di Phil Haack. Funziona bene ma ho anche alcuni progetti di libreria che fanno riferimento a System.Web.Mvc che non verrà compilato sul server di generazione e le opzioni di distribuzione bin in Visual Studio non sono disponibili per i progetti di libreria.

Penso che la cosa giusta da fare è utilizzare NuGet

Install-Package Microsoft.AspNet.Mvc -Version 3.0.20105.1 

Tuttavia, ciò che è la migliore pratica e ci sono tutte le insidie ​​di utilizzare NuGet in questo modo? per esempio. Devo cambiare tutti i miei progetti web ASP.Net MVC per utilizzare questo pacchetto da NuGet invece di distribuire bin le DLL nel GAC?

risposta

8

Abbiamo fatto qualcosa di simile in un progetto MVC 4.

Abbiamo installato MVC utilizzando NuGet, quindi abilitato il ripristino del pacchetto sul progetto, inserendo la cartella .nuget nel repository. http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Install-Package Microsoft.AspNet.Mvc 
Install-Package NuGetPowerTools 
Enable-PackageRestore 

Quando il progetto è costruito sul server di build, i pacchetti mancanti vengono scaricati da NuGet, durante la distribuzione di essi sono inclusi nella directory bin automaticamente.

Direi che l'approccio è corretto piuttosto che utilizzare il metodo di distribuzione bin e il commit degli assembly richiesti nel repository.

Problemi correlati