martedì 1 ottobre 2013

NuGet: verifica delle dipendenze

Finora abbiamo visto come usare NuGet per usare, creare e pubblicare pacchetti per .Net.
Supponiamo ora di avere la necessità di controllare le dipendenze del nostro progetto, e dare l'allarme se pacchetti diversi non abbiano dipendenze comuni ma con differenti versioni.
NuGet mette a disposizione il pacchetto nuget.core, con una serie di API per operare a basso livello sulle dipendenze.
Per installarlo basta il comando

install-package nuget.core

Tra le 1.000 funzioni contenute in questo assembly (che ancora non ho scoperto a pieno) c'è appunto la gestione dei pacchetti.
In questo esempio, partendo da una directory locale, si mettono a video le dipendenze per ogni pacchetto ivi contenuto.
Se guardiamo l'output vediamo che il pacchetto MyCompany.Castle usa Castle.Core v2.5.2 Lo stesso pacchetto è usato da MyCompany.Versioning, fortunatamente con la stessa versione.
Una piccola modifica al programma ci può far individuare eventuali dipendenze con versioni diverse dello stesso pacchetto, ed aiutarci a non avere conflitti di dipendenza quando impacchettiamo i nostri software (o, come è capitato a me, avvisi a runtime di funzioni mancanti perché l'assembly più vecchio sovrascriveva il nuovo).

Nessun commento:

Posta un commento