Antonio "tdj"

(C'è sempre un modo migliore)
posts - 312, comments - 268, trackbacks - 17

My Links

News





Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

Articoli

Blogs

Controlli WinForm free

Guide

Siti vari

Sviluppo

Creare un repository NuGet personalizzato

NuGet permette di distribuire librerie attraverso un repository centralizzato e chiunque può contribuire inviando i propri packages grazie ad un identificativo univoco che è possibile ottenere dal sito ufficiale. In area articoli trovate un ottimo articolo di Alessandro (Utilizzare e distribuire librerie gratuite in Visual Studio 2010 con NuGet) che spiega molto bene come creare un package e pubblicarlo su NuGet.org.
In questo post, però, vorrei evidenziare l’interessante possibilità di creare un repository personale da usare, ad esempio, per condividere e distribuire le librerie che generalmente si realizzano a supporto dello sviluppo di propri progetti soprattutto quando si lavora in un team (che è la situazione in cui mi sono trovato io).

Le possibilità che abbiamo sono due:

1) creare un repository locale

2) creare un repository remoto con IIS

Creare un repository locale
La cosa più semplice consiste nel creare una share di rete in cui copiarci i vari packages (file .nupkg) e poi aggiungerla tra i repository che NuGet usa come feed per la ricerca ed il download.
Semplicemente, nei settings di NuGet (raggiungibile dal menu Library Package Manager / Package Manager Settings), nella sezione Package Sources bisogna aggiungere il path della share di rete:

 


image

 

Da questo momento avremo a disposizione un altro repository da cui scaricare i package nella finestra di dialogo Manage NuGet Packages:

 

image

 

Ogni volta che aggiungiamo un package nella cartella condivisa, automaticamente sarà disponibile attraverso NuGet.

 

Creare un repository remoto
Se invece volessimo creare un repository remoto come NuGet.org, bisogna fare qualcosa in più, ovvero creare una piccola applicazione web per gestire sia il download che l’upload dei package.
La procedura è davvero semplice. Bisogna creare un nuovo progetto ASP.NET Empty Web Application (perchè non serve nulla!) ed aggiungere il package NuGet.Server digitando il seguente comando dalla consolle di NuGet che penserà a fare tutto:

PM> Install-Package NuGet.Server


 

Oltre ad aggiungere un po’ di librerie necessarie per far funzionare il sistema, viene configurata l’applicazione aggiungendo un po’ di settings nel file web.config. e in particolare vengono aggiunte due chiavi in <appSettings>:

 

<appSettings>              
    <!--   Set the value here to allow people to push/delete packages from the server.                                                        
            NOTE: This is a shared key (password) for all users.         -->

    <add key="apiKey" value="" />      
    <!--   Change the path to the packages folder. Default is ~/Packages.                                             
            This can be a virtual or physical path.         --> 
    <add key="packagesPath" value="" />
</appSettings>


packagePath
è la cartella contenente i package mentre apiKey è la chiave (scelta da noi) per consentire l’upload dei package.
Lasciando le impostazioni di default l’applicazione è già funzionante e se proviamo ad eseguirla avremo questo risultato:

 

image

 

che spiega come scaricare e pubblicare package. In particolare la prima url  (http://localhost:2485/nuget) è quella da specificare nei Package Sources come visto in precedenza. Come per la cartella condivisa, aggiungendo I packages nella cartella /Packages del Web Site, automaticamente saranno disponibili a tutti per il download.

In questo modo possiamo centralizzare il repository delle nostre librerie sfruttando tutte le funzionalità di NuGet come il versioning, l’update, ecc… Smile

Print | posted on giovedì 29 marzo 2012 03:07 | Filed Under [ Visual Studio Tools/Utilities NuGet ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET