2009-01-20 9 views
1

J'ai reçu la pile de documents de quelqu'un d'autre. Parmi ces éléments, un complément Word 2003 (VSTO 2005 SE, .NET 2.0) qui fonctionnait correctement en 2007, mais notre environnement de déploiement appelle pour 2003. Il s'installe apparemment bien pour Office 2003 - aucune erreur n'apparaît dans ajouter/supprimer - mais la barre d'outils est indisponible dans Word lui-même.Installation du plug-in Word 2003 sur le serveur 2003

Apparemment, cela fonctionne très bien dans l'environnement de test de quelqu'un, mais je ne l'ai jamais vu fonctionner dans notre environnement de développement commun. Nous avons un projet d'installation/déploiement avec un fichier MSI et setup.exe. (J'ai essayé d'emballer des choses dans des CABs juste au cas où je l'ai essayé avec des prérequis installés sans aucune différence apparente.)

Le fichier MSI, setup.exe, cliquez avec le bouton droit de la souris sur l'installation du projet setup/deploy dans Visual Studio. , aucune de ces méthodes ne signale une erreur - mais aucune de ces méthodes n'a réussi à afficher la barre d'outils dans Word 2003 sur Server 2003 non plus. Toutefois, si je pointe Visual Studio à winword.exe pour le débogage et démarrez le projet, le bouton de complément apparaît. Il continue à apparaître sur les démarrages de clients indépendants ultérieurs. Il reste disponible en tant que barre d'outils jusqu'à ce que je le supprime explicitement via l'ajout/suppression ou le clic droit sur la désinstallation ou l'exécution du MSI et la suppression. Alors maintenant, je suis à court de ressources - que se passe-t-il en exécutant un débogage qui ne se fait pas pendant une installation d'installation/déploiement typique?

EDIT: ok, mises à jour. Créé un complément VSTO 2005 propre pour Word 2003, nouveau nom de complément, table rase. Le même comportement est expérimenté avec un projet nu, un registre vierge, à la fois sur Server 2003 et XP Pro. Je suis un administrateur local sur XP, je suis un administrateur de domaine sur la boîte 2003.

+0

Ce site est pour les questions de programmation SEULEMENT. Lisez la FAQ. –

+0

Le développement de compléments est très bien lié à la programmation. –

+0

Vous avez raison, j'ai mal lu. Mes excuses. –

Répondre

1

EDIT: Confiance totale pour la add- dans l'assemblage a fini par être la solution. Ne semble pas fonctionner à moins de confiance totale.

//

Nous avons fini d'ouvrir un ticket avec Microsoft, et ils me ont instruits sur VSTO_SUPPRESSDISPLAYALERTS:

http://msdn.microsoft.com/en-us/library/ms269003(VS.80).aspx

Cette valeur par défaut à 1; le mettre à 0 fournit une boîte de dialogue contextuelle avec l'exception autrement enterrée.

empruntons toujours les détails, et je vais continuer à mettre à jour ce fil, mais maintenant, nous avons enfin une base pour aller de l'avant:

Could not load file or assembly 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418) 


************** Exception Text ************** 
System.IO.FileLoadException: Could not load file or assembly 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418) 
File name: 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Security.Policy.PolicyException: Execution permission cannot be acquired. 
    at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) 
    at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.HandleOnlineOffline(Exception e, String basePath, String filePath) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadStartupAssembly(EntryPoint entryPoint, Dependency dependency, Dictionary`2 assembliesHash) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ConfigureAppDomain() 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadAssembliesAndConfigureAppDomain(IHostServiceProvider serviceProvider) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadEntryPointsHelper(IHostServiceProvider serviceProvider) 
2

Voici quelques questions pour le dépannage:

  • Quel genre de complément développez-vous? Un complément partagé ou un VSTO? Si VSTO quelle version?
  • Quel système d'exploitation utilisez-vous? Vista peut être difficile ...
  • Vérifiez le LoadBehavior de votre complément dans le Registre. Vous trouverez la valeur soit dans

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\<add-in class name>\ 
    

    ou

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\<add-in classname>\ 
    

Si la valeur de LoadBehavior 2 est votre add-in a été désactivé au démarrage. Cela se produit lorsque Word ne peut pas instancier le complément, généralement parce que le complément renvoie une exception non gérée ou, beaucoup plus souvent, parce que le complément n'est pas correctement enregistré.

Avez-vous vérifié que le moteur d'exécution VSTO est correctement installé sur le système cible?

Cependant, même si vous utilisez VSTO, pour Word, le complément ressemble toujours à un complément COM classique qui étend l'interface IDTExtensibility2 classique.Ces compléments doivent être enregistrés de la manière suivante:

  • L'un des ci-dessus deux clés de Registre pour dire mot le nom de la classe du complément ainsi que des informations supplémentaires telles que le comportement de charge et une description
  • le nom de la classe du complément doit être enregistré sous

    HKEY_CLASSES_ROOT\<add-in classname>\CSLID 
    
  • la version correcte du composant COM doit être enregistré sous (où {xxxxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx} est le guid du composant comme spécifié sous HKEY_CLASSES_ROOT \\ CSLID):

    HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 
    

Les deux liens suivants pourraient aussi vous aider à réduire davantage votre problème:

HOWTO: Troubleshooting Visual Studio and Office add-ins

Troubleshooting Outlook COM Addins – Using ProcMon

+0

Comme indiqué, VSTO (je pense - pour une raison quelconque, le gars avait aussi un prérequis pour le correctif KB de complément partagé) et Server 2003. Malheureusement LoadBehavior n'est pas différent entre quand ça marche, et quand ça ne marche pas . (Merci de signaler l'utilisateur local, je me demandais pourquoi! Dans la machine locale.) – andrewbadera

+0

Désolé, le comportement de chargement peut varier entre 2 et 3, mais l'une ou l'autre valeur n'entraîne aucune différence. – andrewbadera

+0

OK, donc il commence comme 3, puis après que Word commence sans add-in, la valeur devient 2. Y at-il un journal quelque part que je peux enquêter? – andrewbadera

Questions connexes