Outlook et ses plugins…

Un ami a un problème de mail à supprimer automatiquement selon certains critères : les mails contiennent un identifiant et une révision, il ne faut garder pour un identifiant que la dernière révision. Le travail est à effectuer répertoire par répertoire au choix de l’utilisateur.  L’occasion pour moi de jeter un œil sur VSTO (Visual Studio Tool for Office) qui permet de développer (en .Net) des plugins pour Office.
Il y a quelques années, j’avais utilisé les Primary Interop Assemblies (PIAs). Cela fonctionnait bien que la programmation en C# soit assez désagréable (beaucoup de paramètres optionnels, d’où une utilisation intensive de System.Reflection.Missing.Value). VB.Net est certainement plus adapté.
 
En résumé, les modèles de projets de VS2008 (Add New Project > Visual C # > Office > 2003 ou 2007) utilisent les PIA et fournissent une couche supplémentaire autour des interfaces COM des applications Office. Apparemment, une attention toute particulière a été portée aux référencements circulaires des objets et autres joyeusetés qui ont toujours fait de ce type de développement un chemin de croix (les bons jours). Voir par exemple Outlook Shutdown and VSTO Add-ins.
En terme de développement, pas de souci majeur : sur ma machine, en ciblant Outlook 2007, le debugger lance Outlook, pas de processus oublié en mémoire. Rien à dire.
 
Mais, malheureusement, il faut cibler Outlook 2003. Alors qu’il semble trivial de déployer vers des Office 2007, faire un installeur pour la version précédente d’Office c’est tout un plaisir. D’abord, mauvaise surprise lorsque l’on rouvre le projet 2003 : il est automatiquement mis à jour en 2007 ! La solution est ici : Using VS 2008 to continue working on Office 2003 Add-ins. Ensuite, pour l’installation sur les postes clients, c’est beaucoup plus délicat. Voir Deploying Office 2003 Solutions with Windows Installer, et surtout, bonne chance.