domenica 15 settembre 2013

NuGet: pubblicare un pacchetto

Dopo aver creato un pacchetto NuGet è arrivata l'ora di usarlo e farlo usare ai vostri colleghi (altrimenti a cosa serve?)
Ci sono fondamentalmente 2 distinti tipi di pubblicazione: su un server pubblico, se stiamo facendo un progetto open, o su un server privato se stiamo creando qualcosa per uso interno.

Pubblicare su un server pubblico

Per poter pubblicare il nostro assembly sui server NuGet, abbiamo bisogno di creare un account. Una volta creato un account verrà generata una chiave. Per registrarla una volta per tutte sul client basterà digitare il comando
nuget setApiKey Your-API-Key

per la pubblicazione vera e propria basta invece invocare il comando
NuGet Push YourPackage.nupkg

Pubblicare su un server privato

Supponiamo invece di usare NuGet come gestore interno delle dipendenze dei progetti, e di non voler rilasciare come pubblici i nostri assembly. Come possiamo fare per avere un repository NuGet tutto per noi?
Possiamo mettere su un feed. I Feed NuGet possono essere di due tipi: locali, ospitati su un disco locale o di rete, oppure remoti, ospitati su un server Web.

Local Feed

Per gestire i local feed è sufficiente copiare in una directory i files .nupkg ed aggiungere in VisualStudio la directory alle sorgenti (oppure usare il comando nuget sources da prompt dei comandi :-D )
L'opzione di usare una directory condivisa è molto comoda per piccoli gruppi di lavoro, perché non necessita di particolari infrastrutture.

Remote Feed

Se si preferisce avere un server remoto per gestire i nostri feed dobbiamo fare un po' più di lavoro (non troppo per fortuna) ed avere un server IIS a disposizione.
Per prima cosa, con VisualStudio (o SharpDevelop) bisogna creare un progetto Web.
A questo progetto web dovremo aggiungere il riferimento NuGet a NuGet.Server. Questa installazione farà tutto il lavoro per noi, creando tutto ciò di cui abbiamo bisogno per la nostra Web Application.
Le uniche cose che dobbiamo eventualmente configurare sono, nel file App.config, il path ai pacchetti (key="packagesPath") e la apiKey o altri meccanismi di sicurezza.
Fatto questo, e distribuita l'applicazione sul server di riferimento, basterà aggiungere in VisualStudio il link al nostro repository (che sarà del tipo http://mioserver/miorepository)
Per pubblicare un qualsiasi pacchetto il procedimento sarà lo stesso che non verso i server NuGet (nuget push)

Nessun commento:

Posta un commento