76 votes

Comment dépanner un complément VSTO qui ne se charge pas ?

Mon complément Outlook VSTO a soudainement cessé de fonctionner sur une machine client (il ne se charge pas, aucun message d'erreur) et je suis bloqué avec le dépannage. La machine est Windows 7 x86, Outlook 2007. Le complément est écrit avec Visual Studio 2008 et utilise VSTO 2005 avec les PIA 2003 (car nous devons également prendre en charge Outlook 2003). Il fonctionne parfaitement bien sur d'autres machines.

Voici ce que j'ai essayé pour obtenir une sortie de dépannage utile :

Rien. Le complément refuse de se charger sans donner aucune indication de la raison. J'ai également vérifié les "suspects habituels" (politique CAS, PIA installées, LoadBehavior dans le registre, réinstallation de VSTO et du complément).

Quelques autres observations :

  • LoadBehavior dans le registre reste à 3.
  • Le complément apparaît comme "désactivé" dans Outlook. Cocher sa case dans "Compléments COM" ne fait rien (pas d'erreur, la case est désélectionnée à nouveau lors de la deuxième ouverture du formulaire).
  • Il fonctionne parfaitement bien sur d'autres machines client, et il fonctionnait parfaitement bien sur cette machine. (Non, le client ne peut pas me dire ce qui a changé sur sa machine.)
  • J'ai un message Trace.WriteLine en haut de mon code (première ligne dans le gestionnaire ThisAddIn_Startup), qui n'est pas atteint (j'ai vérifié avec DebugView). Ainsi, la raison pour la non-chargement n'est pas une exception dans mon complément mais plutôt une défaillance de VSTO de charger le complément ou d'Outlook de charger VSTO.

Au lieu de plus de débogage aléatoire ("essayez ceci...", "essayez cela..."), j'aimerais vraiment forcer Outlook et/ou VSTO à me dire ce qui ne va pas, c'est-à-dire me donner un message d'erreur utile au lieu de simplement ne rien faire lorsque j'essaie d'activer le complément. Des idées ?

9 votes

Cette question concerne VSTO pour un complément Outlook-Add-In, mais le problème est un problème général d'Office. La question et ses réponses m'ont aidé avec un complément Excel 2010.

2 votes

+1 pour m'avoir fait découvrir la variable d'environnement VSTO_SUPPRESSDISPLAYALERTS

1 votes

@Heinzi - merci d'avoir posé cette question, j'ai ajouté la plupart des autres solutions qui posent problème aux gens. La solution pour les personnes handicapées est facile à corriger sauf si cela se produit sur Citrix...

56voto

Heinzi Points 66519

Voici un peu plus de détails sur la solution de RobertG5 (trop long pour un commentaire) :

Le problème était que le complément avait été désactivé en mode dur par Outlook. Comme j'ai appris, c'est quelque chose de différent du scénario habituel de non-chargement. La clé pour réaliser cela était de remarquer que le complément n'apparaissait pas sous Compléments d'application inactifs, mais plutôt sous Compléments d'application désactivés. Cela fait une différence : dans le dernier cas, se rendre simplement à l'écran COM-AddIn et cocher la case ne fait rien. (Je suppose qu'une belle boîte de dialogue "Vous ne pouvez pas charger ce complément car il a été désactivé en mode dur" serait trop demander... soupir.)

Alors, comment réactiver un complément désactivé en mode dur ?

  1. Dans la boîte Gérer, changez Compléments COM en Compléments désactivés, puis cliquez sur Aller.
  2. Sélectionnez le complément et cliquez sur Activer. Cliquez sur Fermer.

D'accord, maintenant le complément peut être chargé à nouveau :

  1. Dans la boîte Gérer, changez Compléments désactivés en Compléments COM, puis cliquez sur Aller.
  2. sélectionnez la case à cocher à côté du complément désactivé. Cliquez sur OK.

Référence : http://msdn.microsoft.com/en-us/library/ms268871.aspx

3 votes

Génial. Merci pour la référence. J'ajoute que pour la liste des compléments désactivés des applications Microsoft Office 2003 se trouve dans le menu "Aide-À propos".

53voto

RobertG5 Points 476

Avez-vous essayé de réactiver le complément à nouveau? Il ne fonctionnera pas après avoir été placé dans la file d'attente désactivée. Une fois que vous l'aurez réactivé à partir de l'écran des compléments désactivés, vous pourrez ensuite cocher la case dans l'écran COM-AddIn pour le charger, ce qui devrait ensuite vous fournir plus de détails étant donné que vous avez défini la variable VSTO_SUPPRESSDISPLAYALERTS sur ce qui aurait pu se passer en premier lieu.

5 votes

C'est exactement le problème: je coche la case dans l'écran COM-AddIns, clique sur OK, réentre dans l'écran COM-AddIns et la case est à nouveau décochée. Aucun message d'erreur n'apparaît.

3 votes

Je veux dire vérifier la file d'attente des modules complémentaires désactivés (pas ceux que vous n'avez pas cochés). Dans le menu déroulant du type de module complémentaire, c'est le dernier élément de la liste. C'est comme le purgatoire pour les éventuels mauvais modules complémentaires.

2 votes

+1, vous avez raison, bien sûr. Désolé d'avoir mal interprété votre réponse la première fois (le downvote ne vient pas de moi, d'ailleurs). Je marquerai la vôtre comme réponse, mais je garderai également ma réponse ici, car elle est un peu plus verbeuse.

48voto

Jeremy Thompson Points 14428

Je sais que c'est vieux mais pour diverses raisons, j'ai récemment eu des problèmes avec des compléments Office qui ne se chargent pas.

Cela a pris beaucoup de temps donc j'ai pensé partager, donc si votre complément ne se charge pas ou s'il n'est pas visible etc, veuillez essayer ces solutions.

1. Le complément n'est pas chargé.

Non chargé. Une erreur d'exécution s'est produite lors du chargement du complément COM.

entrer la description de l'image ici

Le problème est dû à l'absence de .Net framework 3.5 ou 4.0.

Note : Si la version d'Office est 64-bit (x64), j'ai seulement besoin de .Net 4.0. Cependant, si la version d'Office est 32-bit (x86), j'obtiens l'erreur après avoir installé .Net 4.0 également. Suivant cet article, j'ai installé .Net 3.5, et ensuite ça a fonctionné sur l'Office x86 !

De plus, il faut installer VSTO Runtime 3.0 depuis ici.

2. Le complément n'est pas chargé.

Vérifiez que vous avez correctement orthographié les clés du registre. Parfois, je tape Behavior alors qu'en anglais américain c'est Behavior, donc vérifiez bien "LoadBehavior"

entrer la description de l'image ici

Assurez-vous également que "LoadBehavior" est à 3, pour une liste de valeurs voir http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior

3. Le complément n'est pas visible.

Vous pouvez rendre le complément visible en allant dans Excel > Fichier > Options > Compléments > sélectionnez la liste déroulante Gérer et réglez-la sur Compléments COM > Cliquez sur OK. Dans la boîte de dialogue des Compléments COM assurez-vous que le complément est coché.

4. Le complément a été désactivé.

Alternativement, le complément peut être caché car il a été désactivé. Vous pouvez activer le complément en allant dans Excel > Fichier > Options > Compléments > sélectionnez la liste déroulante Gérer et mettez-la sur Désactivés et cliquez sur OK. Sélectionnez le complément qui a été désactivé et cliquez sur Activer.

entrer la description de l'image ici

5. La formule définie par l'utilisateur ExcelDNA ne s'affiche pas correctement

Au lieu de voir la valeur de la cellule, vous voyez : #NAME?

Définissez la clé de registre suivante :

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options\OPEN:

Avec la valeur correcte :

/R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll"

6. Excel SE BLOQUE après l'affichage d'une boîte de dialogue

Réactivez les paramètres de l'application :

xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.UserControl = true;
xlApp.EnableEvents = true;

7. Dépannage supplémentaire

Activez votre fichier journal VSTO en ajoutant ce qui suit à vos variables d'environnement système :

NOM: VSTO_LOGALERTS
VALEUR: 1

Une erreur d'exception pourrait être la raison pour laquelle votre complément ne se charge pas.

Pour définir le journal VSTO et les alertes, vous pouvez changer deux valeurs de variable d'environnement selon ce que vous devez faire :

Affichage des alertes VSTO

Pour afficher chaque erreur dans une boîte de dialogue, réglez la variable VSTO_SUPPRESSDISPLAYALERTS sur 0 (zéro). Vous pouvez supprimer les messages en réglant la variable sur 1 (un).

Journalisation des alertes VSTO dans un fichier journal

Pour écrire les erreurs dans un fichier journal, réglez la variable VSTO_LOGALERTS sur 1 (un).

Visual Studio Tools for Office crée le fichier journal dans le dossier contenant le manifeste de l'application. Le nom par défaut est .manifest.log. Pour arrêter d'enregistrer les erreurs, réglez la variable sur 0 (zéro).

0 votes

4). Le module complémentaire a été désactivé. -> ça a fonctionné pour moi!

0 votes

Gérer doit être défini sur Articles désactivés était le déclic pour moi. merci!

1 votes

Réponse brillante. Une fois que j'ai découvert les variables d'environnement pour arrêter la suppression des erreurs, j'ai pu constater que mon complément plantait car il manquait ''SQLite.Interop.dll'. Merci beaucoup, merci beaucoup.

7voto

Je suggérerais d'utiliser un outil Microsoft pour diagnostiquer les problèmes d'add-in appelé AddinSpy.

0 votes

Après avoir essayé toutes sortes de choses, cet outil a fonctionné pour moi. Il s'avère que l'addin était en cours de chargement mais qu'une autre dépendance (un fichier dll) ne se chargeait pas car "cette assembly est construite par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargée". AddinSpy m'a aidé à obtenir ce message d'erreur.

0 votes

Il est vraiment décevant que ce lien soit mort. Je pense que cela m'aurait aidé à résoudre mon problème.

0 votes

Vous voudrez peut-être chercher un emplacement de téléchargement. Voici une page pour voir à quoi cela ressemblait : msdn.microsoft.com/en-us/library/cc984533%28v=office.12%29.a‌​spx

1voto

Paul Thompson Points 61

Drôle pour moi, j'ai essayé un redémarrage. Ça a marché pour moi. Cependant, la raison pour laquelle ça a marché pour moi, c'est que j'avais un Excel.exe rogue qui tournait en mode caché. L'addin ne se lançait pas à cause de cette autre application Excel en cours d'exécution (je migrer une application MSAccess vers VSTO), donc Access avait une application d'automatisation ouverte en mode caché.

En bref, si votre addin ne démarre pas, vérifiez rapidement s'il n'y a pas d'autres applications Excel en cours d'exécution. Cela ne s'applique bien sûr que lorsque vous essayez d'en installer une nouvelle / de la faire fonctionner.

(J'ai utilisé ce lien) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X