Héberger ses packages sur Visual Studio Online

Depuis Novembre 2015, Visual Studio Online permet de gérer l’hébergement de packages au travers d’un service nuget. Voyons comment cela fonctionne.

Pour rappel, un gestionnaire de packages permet de centraliser vos différentes libraries sur une même plateforme et gérer ainsi plus facilement les différentes mises à jour et dépendances dans vos projets.

Nuget est le principal gestionnaire de packages sur des projets .NET.

Pour démarrer, rien de tel que la doc qui est plutôt claire : https://www.visualstudio.com/en-us/get-started/package/overview

Configurer le gestionnaire

L’interface de Visual Studio Online est assez explicite, {Votre projet} / Packages puis « Connect to feed » pour configurer la connexion.

AdToVs

Vous allez télécharger le bundle qui contient un exécutable représentant votre outil pour gérer vos packages (nuget.exe que l’on utilisera à la fin) et un VSTS Credential Provider qui vous permettra de gérer vos identités.

Positionnez votre fichier « CredentialProvider.VSS.exe » dans « C:\Users\{user}\AppData\Local\nuget\CredentialProviders » ou créez votre variable d’environnement : NUGET_CREDENTIALPROVIDERS_PATH / {Votre répertoire où vous avez mis CredentialProvider.VSS.exe} (dans ce cas, il faudra redémarrer la machine pour que la modification soit prise en compte)

+ d’infos : https://www.visualstudio.com/en-us/get-started/package/nuget/auth

Une fois que c’est réalisé, configurez Visual Studio en allant dans Tools/Nuget Package Manager/Package Manager Settings. Onglet « Package Sources ».

ConnectToFeed

Cliquez sur la croix verte, ajoutez votre adresse de serveur (similaire à https://{votredomaine}.pkgs.visualstudio.com/DefaultCollection/_packaging/vso-commons/nuget/v3/index.json) et validez.

Générer les packages

Avant de générer un package, pensez à mettre (et à incrémenter) un numéro de version dans les propriétés de l’assembly ainsi qu’une description et l’auteur du package.

Il ne vous reste plus qu’à générer le package et à l’envoyer vers votre serveur nuget. Pour cela, placez-vous dans le répertoire contenant le fichier nuget.exe que vous avez téléchargé précédemment et ouvrez la console (shift + clic droit).

Génération

nuget pack "{path}\{votreprojet}.csproj" -OutputDirectory "Packages"
 -basepath "{Path où sont les libraries}"

Gardez bien les guillemets, remplacez ce qui est entre accolades.

Push

nuget push {path du package} 
-s {url de votre serveur nuget (celle déclarée dans VS)}

Automatiser

Voici un petit script .bat pour automatiser la génération et l’upload (si vous voulez l’exécuter à la fin de vos builds réussies en attendant que VSO le permette) :

mkdir ".\Packages"
del /S /Q ".\Packages\*"
 
nuget pack "{path}\{votreprojet}.csproj" -OutputDirectory "Packages"
nuget pack "{path}\{votreAutreProjet}.csproj" -OutputDirectory "Packages"
REM à répliquer selon le nombre de projets 

for /r %%i in (.\Packages\*) do (
nuget push .\Packages\%%~nxi -s {url de votre serveur nuget}
)

 Le for /r %%i in (.\Packages\*) permettra de parcourir tous les packages du répertoire et les pushera au fur et à mesure. Si la version existe déjà sur le nuget, il passera au package suivant.

Pensez à mettre le fichier nuget.exe (télécharger au tout début) à côté de ce fichier bat.

Par JC VASSELON

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s