Introduction
Un de mes collègues a récemment perdu une partie de son code source suite à un problème technique avec un poste virtualisé. Il n’avait pas eu le temps d’archiver le code dans le gestionnaire de code source et tout ce dont il disposait était le code compilé (WSP). Après avoir essayé de recréer sont code à partir de rien, il s’est résolu à venir me voir pour trouver une solution à sont problème.
Dans ce billet nous allons voir comment il est possible de recréer un projet SharePoint à partir d’un fichier WSP et si requis de dé-compiler les DLL d’un projet.
Recréer un projet SharePoint à partir d’un WSP
Pour importer un fichier .wsp
-
Dans Visual Studio, dans la barre de menus, choisissez Fichier, Nouveau, Projet pour afficher la boîte de dialogue Nouveau projet. Si votre interface IDE est définie pour utiliser les paramètres de développement Visual Basic, dans la barre de menu cliquez sur Fichier, puis Nouveau Projet.
-
Développez le nœud SharePoint sous Visual C# ou Visual Basic,
-
Choisissez le modèle Importer le package de solution SharePoint dans le volet Modèles, puis cliquez sur OK.
L’Assistant Personnalisation de SharePoint s’affiche.
-
Dans la page Spécifier le site et le niveau de sécurité pour le débogage, spécifier un site existant.
-
Dans la section Quel est le niveau de confiance de cette solution SharePoint ?, sélectionner une des deux options.
-
Dans la zone Sélectionner les éléments à importer, sélectionner tous les éléments que vous voulez récupérer, puis cliquez sur Terminer.
Cette opération vous permet de recréer un projet avec les différents artefacts. Cependant, certains éléments comme les DLL peuvent se retrouver dans les « éléments non importés ».
Décompiler les DLL
Ensuite, pour les éléments qui n’ont pas pu être importés, il est possible de dé-compiler les DLL à l’aide d’un outil comme ILSpy ou Reflector :
Vous pourrez ensuite, extraire le code et recréer vos classes dans votre projet.
Conclusion
Bien évidemment, ça ne permet pas de reproduire exactement le projet dans le même état initial mais on peut tout de même récupérer le code source perdu. Idéalement, pensez à archiver vos sources régulièrement dans votre gestionnaire de code source afin d’éviter de vous retrouver dans cette fâcheuse situation.