Question

J'ai créé un élément complémentaire dans Word, et un projet d'installation de Visual Studio pour installer le composant.

Sur une machine propre avec Office 2003 installé, il ne semble pas être possible d'obtenir le composant complémentaire pour charger dans Word.

googler la question suggère que ce soit parce que l'assemblée n'est pas digne de confiance. J'ai donné l'assemblée pleine confiance en utilisant l'outil de ligne de commande:

caspol -af AssemblyName.dll

Cela ne fait aucune différence et la compenent est pas encore chargé dans Word. imprime Caspol un message "Parce que tous les ensembles GAC obtiennent toujours pleine confiance, la liste complète de la confiance est pas plus significatif. Vous devez installer des ensembles qui sont utilisés dans la sécurité politique dans le GAC pour vous assurer qu'ils sont de confiance »

Modification du programme d'installation pour mettre l'ensemble dans le GAC permet de charger correctement dans Word. Mais le composant peut avoir à utiliser des ensembles communs à l'avenir, partagé entre nos autres applications .NET et l'ajout de ces bibliothèques au GAC serait indésirable.

Quelqu'un sait comment définir la sécurité pour permettre au composant à charger lorsqu'il est installé à l'extérieur du GAC?

Était-ce utile?

La solution

Vous pouvez exécuter manuellement la commande suivante pour définir la sécurité pour permettre le mot d'exécuter l'ensemble de l'extérieur du GAC. Cela crée un nouveau groupe avec une confiance totale qui est ce qui permet à l'ensemble de fonctionner.

caspol.exe -u -addgroup All_Code -url "\*"  FullTrust -n AssemblyName.dll

Microsoft ont une action personnalisée par exemple pour un programme d'installation sur le site de lien vers MSDN , qui vous permettra d'inclure cette commande comme une action d'installation personnalisée.

Autres conseils

Vous ne devriez vraiment pas installer votre assembies au GAC, ni est-il nécessaire de définir une politique de sécurité sur votre ensemble complément.

Utilisez-vous .NET 2.0 avec Office 2003? Office 2003 et Office XP ont tous deux un addins .NET de chargement d'émission 2.0. Ils obtiennent chargé à l'aide du .NET Framework 1.1 (si elle est présente sur la machine, ce qui est très probable). Vous devez donc patcher votre installation de bureau avec Shared Add-in Mise à jour du support pour Microsoft .NET Framework 2.0 (KB908002) .

Vous devriez certainement inclure ce patch pour les pré-requis de votre installateur.

Trouver plus de détails dans la réponse à cette question .

Et bien sûr, vous devez avoir la version correcte des PIA installés sur votre système cible (presque oublié ce point, PIA faux ou manquant est l'un des principaux problèmes pourquoi compléments ne se charge pas).

Mise à jour : KB908002 nécessite VS 2005 sur le PC afin d'ajouter la mise à jour du support Add-in partagée à la boîte de dialogue pré-requis des projets d'installation. La solution de contournement suivante doit être utilisée dans ce cas:

Si vous utilisez ensuite Visual Studio 2008, vous devez suivre les solution mentionné ci-dessous pour KB908002 répertorié sous ajouter pré-requis dialogue:

  
      
  1. Téléchargez et installez le correctif sur une machine qui a Visual Studio 2005 est installé.
  2.   
  3. Accédez à C:. \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages , localiser le dossier KB908002
  4.   
  5. Connectez-vous à la machine qui a Visual Studio 2008 installé et copiez le dossier KB908002 C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ \ Bootstrapper Packages
  6.   
  7. Maintenant, si vous allez à la liste pré-requis sur la machine Visual Studio 2008, vous verriez le correctif répertorié.
  8.   

Une autre option où vous n'avez pas besoin VS 2005 à tous serait:

  
      
  1. Télécharger le correctif dans un dossier temporaire.
  2.   
  3. Ouvrez une invite de commande, accédez au dossier dans lequel le correctif est situé et lancez la commande suivante pour extraire les fichiers à partir du fichier d'installation auto-extractible:

    vs2005-kb908002-enu-x86.exe /C /T:C:\KB908002\
    cd \KB908002
    
         

    Maintenant le dossier C: \ KB908002 contiendra trois fichiers, VS2005-KB908002-enu-x86.exe / C / T: C: \ tmp \ KB908002 \ tmp, setup.exe et bootstrapper.msi

  4.   
  5. Nous sommes intéressés par le contenu de bootstapper.msi, donc on extrait le contenu de ce fichier:

    msiexec /a bootstrapper.msi /qb TARGETDIR=C:\KB908002\tmp\
    cd tmp
    
  6.   
  7. Enfin, on copie le dossier packages que nous avons extrait dans le dossier bootstrapper de Windows SDK

    xcopy /E "C:\KB908002\tmp\SDK\BootStrapper\Packages" "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
    
  8.   
  9. Maintenant, si vous allez à la liste pré-requis dans Visual Studio 2008, vous verriez le correctif répertorié.

  10.   

Je ne pense pas mettre l'ensemble complément dans GAC est obligatoire. Je pense que vous manque juste une étape dans votre déploiement.

Les applications bureautiques telles que MS Word chargent leurs compléments en lisant certaines entrées de registre. Vous êtes probablement pas créer ces entrées au cours du déploiement.

Pour en savoir les détails de toute cette affaire de Registre, consultez ce article. Lisez également sur le déploiement de bureaux add-ins voir en général, cet article

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