Question

J'ai créé un complément Outlook pour 2003, 2007 et 2010. Le complément fonctionne bien en 2007 et 2010, mais ne se charge pas correctement en 2003 sur des machines, autres que ma propre machine de développement. Il n'y a aucun problème de code, car il n'y a pas d'erreurs affichées dans le comportement de charge, et ce n'est pas un élément désactivé. Le complément n'est pas non plus affiché dans la liste des compléments COM. Ce complément a précédemment fonctionné sous 2003.

Voici la partie étrange. J'ai une copie du complément à partir d'un moment précédent, donc ne contient pas certaines des fonctionnalités de la version complète. Ce complément se charge correctement en 2003. Donc, dans le cadre de mes tests, sur une machine virtuelle, j'ai installé la version précédente (je l'appellerai test) et la version actuelle qui ne fonctionne pas (je l'appellerai plein). Dans le registre sous HKCU> Software> Classes> CLSID> [[GUID]]> InProCserver32, pour le test Version J'ai changé les touches «Manifest Location» et «Manifest Name» pour être les valeurs du plein version. J'ai ensuite couru Outlook, et la version complète a parfaitement fonctionné.

Je ne vois pas comment le plein Le complément ne fonctionne pas sous ses propres paramètres de registre, mais fonctionne bien sous test«S, et seulement sur Outlook 2003.

Voici les informations de base:

Ma configuration de développement est:

  • Windows 7 64 bits
  • Outlook 2003 installé
  • Exécuter VS2008 pour le projet complément, mais utilisez également VS2010 pour un ensemble satellite.
  • Le projet de sécurité de set est inclus et modifié pour permettre à plusieurs assemblages d'avoir un ensemble Caspol.

Les pré-REQ suivants sont inclus dans le projet de configuration:

  • .NET 2.0
  • .NET 3.5SP1
  • Office 2003 PIA (également 2007 et 2010 PIAS pour 2007 et 2010 respectivement)
  • Vstose Runtime
  • Windows Installer 3.1

Tout indice serait grandement apprécié, car j'ai passé près de 4 jours sur cette question!

Tia.


Mise à jour 1:

Selon les commentaires @joaoangelo, j'ai vérifié les paramètres du registre, et ils sont les suivants:

HKCU> Software> Classes> CLSID> {complément CLSID}> inprocserver32

 - (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
 - ManifestLocation - path to the containing folder
 - ManifestName - the .dll.manifest file name
 - ThreadingModel - 'Both'

HKCU> Logiciel> Microsoft> Office> Outlook> Addines> Myaddin

 - (default) - not set
 - CommandLineSafe - '1'
 - Description - a string
 - FriendlyName - add-in ID
 - LoadBehavior - '3' (this never gets set to 2, which would indicate an issue)
 - Manifest - path to the .dll.manifest of the add-in assembly
 - Path - path to the containing folder

J'ai également ajouté ce qui suit sous ce dernier, selon le Page de déploiement, mais en vain:

 - ManifestLocation 
 - ManifestName

Mise à jour 2:

Selon les commentaires 0xa3; Sous HKCR> MyAddin, j'ai une clé CLSID avec une seule valeur de chaîne:

(default) - {add-in CLSID}

Le CLSID est le même que dans le logiciel HKCU>> Classes> CLSID et tout au long du registre.

Était-ce utile?

La solution

J'ai finalement réussi à trouver le problème, c'était lié au registre.

J'avais initialement prévu d'avoir des compléments séparés pour chaque version d'Outlook, et en tant que telles mes espaces de noms et mes conventions de dénomination, etc. étaient:

  • Société] .Addins.outlook2003
  • Société] .Addins.outlook2007
  • Société] .Addins.outlook2010

Cependant, j'ai réussi à créer le complément pour cibler les 3, j'ai donc renommé [la société] .addins.outlook2003 pour être [société] .addins.client.

J'avais changé les paramètres de registre de HKCU> Software> Microsoft> Office> Outlook> Addines> MyAddin, pour faire référence à la modification décrite, mais pour une raison quelconque, je ne l'ai pas mise à jour sous HKCU> Software> Classes.

Dès que j'ai changé ces derniers paramètres dans VS, cela a fonctionné!

Pour référence, les modifications ont été apportées dans VS dans le cadre du projet de configuration, sous View> Registry.

Un peu ennuyeux que ce problème n'apparaisse pas en vertu de 2007/2010, car il a peut-être été plus facile de retrouver.

Autres conseils

Si vous ne l'avez pas déjà fait, vous devez définir les variables d'environnement suivantes pour vous aider à résoudre les problèmes de chargement d'administration:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

Le premier entraînera une création d'un fichier * .log dans le répertoire contenant les assemblages Addin et le second permettra à les fenêtres des erreurs d'être affichées lorsque vous démarrez l'application cible, dans ce cas Outlook.

Vous dites également que dans votre boîte de développement avec Office 2003, l'addin fonctionne correctement. Étant donné que Visual Studio enregistre automatiquement l'ajout dans la boîte de développement lorsque vous effectuez une version, vous devez vous assurer que vous créez toutes les clés de registre nécessaires dans la configuration. Vous pouvez vérifier le Entrées de registre requises Section dans l'article MSDN suivant pour vérifier que vous avez les touches correctes créées dans la configuration:

Déploiement de compléments au niveau de l'application

Je recommanderais de suivre les étapes de dépannage décrites ici:

Hamed Ahmadi: Mon bureau Addin ne se charge pas!

Êtes-vous sûr que l'addin n'a pas été désactivé par Outlook pour une raison quelconque? Si vous avez installé le niveau de machine informatique (par opposition au niveau de l'utilisateur), il n'apparaîtra pas dans la liste de COM Add In dans tous les cas. Peut-être essayez de l'installer en tant qu'addition par utilisateur (donc il apparaît dans la liste) et allez-y à partir de là?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top