Créer son template de solution Visual Studio

Vous avez tendance à créer la même architecture de solution Visual Studio à chaque démarrage de nouveaux projets et perdez de précieuses minutes à refaire encore et encore les mêmes configurations ? Vous voulez en un clic générer votre solution avec tout votre socle configuré ? Vous êtes au bon endroit !

Je vous propose un tutoriel qui va vous permettre de créer votre propre template de solution pour Visual Studio. Nous allons procéder par étape ; Les exemples qui vont suivre seront basés sur une solution constituée de plusieurs projets avec de l’interdépendance entre eux et des références à des librairies tierces (via Nuget).

Voici l’architecture brute de notre solution, celle-ci ne contient encore aucune dépendance entre projets et aucune librairie tierce :

TemplateVS1.JPG

Gestion des dépendances

Dépendances inter-projet

Ajoutons maintenant des dépendances entre les projets (Clic droit sur les références d’un projet > Ajouter une référence  > Onglet Solution > Choix du projet) :

TemplateVS2.JPG

Pour que votre template prenne en compte dynamiquement le nom de votre solution dans le nom de vos références et éviter de garder « MonTemplate. », il est nécessaire de procéder à l’étape suivante :

Déchargez les projets dont vous souhaitez renommer les références (Clic droit sur un projet > Décharger le projet) et modifiez le contenu du fichier csproj du projet pour remplacer les occurrences « MonTemplate » par « $ext_safeprojectname$ » dans les balises Name de ProjectReference.

Dans notre exemple, nous avons édité le projet MonTemplate.Domain :

TemplateVS3.JPG

Vous devez appliquer cette manipulation pour l’ensemble de vos projets ayant des références de projet. Vous devriez avoir une solution de cette forme une fois terminé :

TemplateVS4.JPG

Dépendances Nuget

S’il y a un besoin d’intégrer des librairies tierces via Nuget à un projet, vous devez modifier l’arborescence de votre solution. En effet, si vous ajoutez de nouveaux packages, ces derniers ne seront pas pris en compte lors de la génération de votre solution. Cela est dû à une différence d’arborescence entre votre Template et vos futures solutions (qui seront générées par le template). Pour remédier à ce problème, il faut modifier l’arborescence de la manière suivante :

Votre arborescence actuelle :

TemplateVS10.JPG

L’arborescence à respecter pour intégrer des packages Nuget :

TemplateVS11.JPG

Il faut créer un répertoire « MonTemplate » et y transférer l’ensemble des dossiers des projets. Enfin, il faut modifier le chemin des projets dans votre fichier solution MonTemplate.sln de la façon suivante (voir l’ajout du dossier en rouge) :

TemplateVS12.JPG

Votre solution Template est prête à intégrer des packages Nuget !

Export des modèles de projet

Une fois vos modèles de projet finalisés, il faut effectuer une exportation projet par projet : Menu « Fichier » > Exporter le modèle :

TemplateVS5_modele1.JPG

TemplateVS5_modele2.JPG

Vous aurez ce résultat attendu :

TemplateVS6.JPG

Vous pouvez décompresser les fichiers Zip dans le même répertoire et ensuite supprimer les fichiers Zip. Renommez le fichier MyTemplate.vstemplate dans l’ensemble des dossiers de projet par le nom du projet correspondant. Voici un exemple avec le projet MonTemplate.Domain :

TemplateVS7.JPG

Nous avons ici, renommé le fichier MyTemplate.vstemplate par Domain.vstemplate. Réitérez cette opération pour l’ensemble des projets de votre solution.

Il faut maintenant créer un fichier .vstemplate pour votre solution. Créez un nouveau fichier nommé MonTemplateSolution.vstemplate dans le même répertoire que vos dossiers de projet :

TemplateVS8.JPG

Editez le fichier avec le contenu suivant :

TemplateVS13.JPG

Il ne vous reste plus que la dernière étape : créer une archive Zip constituée de tous les dossiers de projet ainsi que le fichier MonTemplateSolution.vstemplate. Vous pouvez maintenant placer cette archive (sans la décompresser) dans votre dossier de ProjetTemplates de Visual Studio : […]\Visual Studio 2013\Templates\ProjectTemplates\.

Vous avez maintenant accès à votre Template dans la liste des types de projets ! Il ne vous restera plus qu’à effectuer une restauration des packages Nuget si vous en avez dans votre solution pour la rendre opérationnelle.

TemplateVS9.JPG

2 réflexions sur “Créer son template de solution Visual Studio

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