2009-08-25 16 views
3

J'essaie de diagnostiquer pourquoi mon plugin Outlook écrit en C#/VSTO 3.0/VS 2008 ne se charge pas après avoir été installé.Mon add-in Outlook VSTO 3.0 ne se charge pas

Le plugin fonctionne de manière géniale sur ma machine de développement, sur laquelle Visual Studio 2008 est installé. Je ne peux pas attendre tous mes utilisateurs d'avoir toutes les conditions préalables que je suis allé à travers ces étapes pour écrire un programme d'installation: http://msdn.microsoft.com/en-us/library/cc563937(loband).aspx

J'ai installé le complément sur une nouvelle machine à Windows XP SP 2 avec une nouvelle installation de Outlook 2007. Il installe tous les prérequis ok (.NET 3.5, runtime VSTO 3.0, Windows Installer 3.1, 2007 PIAs). Outlook démarre mais le complément n'est pas exécuté. Si j'accède à l'onglet Compléments dans le Centre de gestion de la confidentialité, je vois mon complément dans la section "Compléments d'applications inactifs" avec le message "Non chargé: une erreur d'exécution s'est produite lors du chargement du complément COM ".

Vous ne savez pas comment trouver l'erreur spécifique pour pouvoir la réparer.

Les touches reg semblent correctes. Sous HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Outlook \ Addins \ BlahAddin, je vois Description, FriendlyName, LoadBehavior (défini sur 3 jusqu'à ce qu'il échoue après quoi if devient défini sur 2) et Manifest.

Essayé l'astuce de la variable d'environnement VSTO_SUPPRESSDISPLAYALERTS, puis lancé Outlook à partir de la ligne de commande, mais aucune sortie n'est sorti.

J'ai le débogage à distance plus ou moins de travail mais je ne suis pas sûr de quoi chercher. Je ne vois pas ma DLL chargée lorsque je me connecte à Outlook, mais peut-être que les DLL managées n'apparaissent pas de la même manière dans VS.

D'autres idées sur les prochaines étapes que je pourrais suivre pour produire une erreur spécifique que je peux diagnostiquer?

Répondre

3

Résolu mon problème après des semaines de douleur. La clé reg "Manifest" était corrompue à une certaine valeur indésirable lors de la construction de l'installation. Il s'agissait d'un bogue connu de Visual Studio censé avoir été corrigé dans Visual Studio 2008 SP 1, mais apparemment ce n'était pas pour moi.Renommer le nom du projet pour qu'il soit différent du nom du plugin a résolu le problème. Aléatoire, hein?

2

Assurez-vous que vous disposez de gestionnaires try-catch au premier niveau de toutes les méthodes appelées par Outlook et consignez les exceptions que vous ne parvenez pas à gérer d'une manière ou d'une autre. Concentrez votre dépannage sur des méthodes telles que la méthode Startup et d'autres méthodes appelées lors de l'initialisation.

+0

N'a pas aidé malheureusement. Mes méthodes de démarrage/arrêt sont assez stériles et j'ai essayé de les emballer avec des blocs try/catch. –

1

Vous souhaitez probablement déboguer ceci en utilisant le débogueur distant. Partagez le dossier MSVCMON.EXE de votre machine de développement (dans vos dossiers Visual Studio dans Program Files) sur votre machine de test (partagez-le avec un chemin UNC), et lancez Outlook sous les exceptions de trappeur de débogage (.NET) dans vos modules et mettre des points d'arrêt dans vos méthodes. Si vous devez nettoyer votre ordinateur de test chaque fois avant d'installer votre solution, vous devez probablement exécuter XP sous Virtual PC 2007 VM (téléchargement gratuit) et passer à un HD de différenciation après avoir configuré tout sauf votre plugin pour l'instantané. votre état pré-installé une fois afin que vous n'ayez pas à désinstaller/réinstaller lorsque vous apportez des modifications à votre programme pour corriger les bogues.

Etes-vous en train d'installer des versions Debug ou des versions Release? Peut-être qu'une saveur a des exigences différentes. Je devine juste.

-Mike [MSFT Bureau Dev]

+0

Toujours installer sur une machine virtuelle propre sans état. Peut se connecter à Outlook avec le débogage distant en mode géré et non géré. Il existe des exceptions levées pendant la charge, mais difficile à déchiffrer sans les symboles mso.dll: "Exception de la première chance à 0x7c81eb33 (kernel32.dll) dans OUTLOOK.EXE: 0x000006A6: Le handle de liaison est invalide." Exceptions similaires en mode sans échec lorsque l'addin n'est pas chargé. Impossible de définir des points d'arrêt dans mon complément ("Le point d'arrêt ne sera pas actuellement touché, aucun symbole ne sera chargé pour ce document.") Mais mon message ne s'affiche pas signifie que je suis bloqué avant le complément charges. –

1

Sur votre machine, lorsque vous exécutez l'Addin de Visual Studio, il doit créer une clé de Registre dans HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ Security \ Inclusion {SomeGuid}. Assurez-vous que ces paramètres de registre sont également déployés avec votre addin. Ce sont eux qui permettent de faire confiance à votre code.