2010-09-13 8 views
6

Bonjour J'ai été confronté à certaines complexités avec la compréhension du déploiement des assemblys PIA (Primary Interop Assemblies) pour MS Office. J'ai Visual Studio Com Add-IN construit en VS 2008 sur la technologie pure com (pas VSTO voir plus bas pour plus d'informations), qui fait référence à 2003 Primary Interop Assemblies mais le complément peut être utilisé en 2003, 2007 ou maintenant 2010 Machines de bureau. Parce que je ne sais jamais si le client utilisera 2003, 2007 ou 2010, je ne peux pas simplement déployer une version PIA comme condition préalable (sauf si je fais 3 installeurs que je ne veux pas faire). Maintenant, je comprends que lorsque vous suivez les étapes here pour ajouter 2003 et 2007 PIA aux listes de prérequis qui s'affichent dans un package d'installation Visual Studio (2008), les prérequis sont assez intelligents pour déterminer quelle version Office est en cours d'exécution sur le client vous ciblez Donc, si vous deviez sélectionner les assemblages d'interopérabilité primaires 2003 et les assemblages primaires d'iterop 2007 comme étant des prérequis, vous devriez être assez intelligent pour essayer d'ajouter le PIA 2003 si celui-ci manque sur cette machine. s'il s'agit d'une machine Office 2007, elle installera uniquement PIA 2007 (et ne tentera pas d'installer PIA 2003).Déploiement de PIA vers des versions mixtes de Office

Question 1 est-ce une bonne compréhension (que les packages prérequis sont ce intelligent pour installer uniquement ce dont il a besoin en fonction de la version d'Office?)

Question 2 est-il un moyen d'obtenir la 2010 PIA à montrer dans la liste des conditions préalables dans VS 2008 comme 2003 et 2007 faire? Je ne veux pas mettre ce projet à niveau vers VS 2010 b/c il est considéré comme une application héritée maintenant avec de nombreux clients de partout dans le monde qui l'utilisent.

Question 3 Même si l'assembly réel fait référence à l'interopérabilité primaire 2003, je ne déploie pas actuellement ces interops avec le complément à l'emplacement d'installation. Au lieu de cela, je suppose que si je peux installer le PIA correct alors je n'ai pas besoin de ce présent dans le chemin d'installation, puisque le PIA serait dans le GAC. Cependant, une approche possible peut être d'inclure simplement les assemblys 2003 qui sont référencés (dans mon cas, excel et word) dans le chemin d'installation et ne pas se soucier du PIA. Je suspecte que cela fonctionnerait sur les machines 2003 mais peut-être pas sur les machines 2007 et 2010 b/c sur ce dernier, même si les interops 2003 référencés sont trouvés au moment de l'exécution dans le chemin d'installation de l'assemblage, je pense qu'il n'y en a pas un Policy.11.0.Microsoft.Office.Interop.Excel/Word (etc) dans le GAC, puis 2007 et 2010 ne sauront probablement pas quoi faire avec l'interops 11.0 (2003) (comme je le pense Policy.11.0.Microsoft. Les fichiers Office.Interop redirigent les demandes pour l'Interops 2003 vers 2007 ou 2010). Des pensées à ce sujet?

Question 4: Il existe un bogue bien connu avec les applications Framework 2.0 Office Add-Ins et Office 2003 où le complément ne se charge pas. Cela a été adressé par KB907417 alias KB908002. Quelqu'un sait-il si cette KB est nécessaire si vous développez sur le framework 3.0 ou 3.5 (et faites de 3.0 ou 3.5 une condition préalable) puisque ce problème était spécifique au framework 2.0? Ou le KB doit-il encore être déployé? C'est le bureau 2003 qui est le problème et non la version du framework?

Comme je peux le voir par mes 3 questions, ce que j'essaie de déterminer est de savoir si nous pouvons construire un seul programme d'installation via l'utilitaire de configuration VS. Si les PIAs peuvent être fait avec un installateur mais le KB ci-dessus est l'obstacle (comme peut-être la réponse reviendra que même sur le 3.0 ou 3.5 framework 2003 les clients auront besoin de la KB) alors peut-être que le chemin vers un installateur le KB est un prérequis à tous les niveaux et l'installe sur les machines 2007 ou 2010, même si techniquement ils n'en ont pas besoin. Toute réflexion sur cette option serait également appréciée. Enfin, je suis conscient que l'écriture d'un add-in Com mangé pour Excel ou Word est maintenant généralement fait avec VSTO au lieu du code de cadre géré pur, mais ce n'est pas une option actuellement pour changer l'application héritée dans cette direction. En outre, il est rapporté que le 4.Le framework 0 peut maintenant être utilisé pour déployer des compléments sans faire de PIA une condition préalable mais encore une fois, ce n'est pas une option viable en ce moment.

Répondre

0

Le code utilise-t-il des méthodes ou des classes Office 2007+? Si non, êtes-vous sûr de ne pas pouvoir utiliser les EFVP de 2003 dans tous les cas? Les applications ultérieures doivent être rétrocompatibles (prenant en charge la même API). La seule raison pour laquelle vous auriez besoin d'un PIA mis à jour est de savoir si vous avez besoin d'accéder à certaines fonctionnalités ajoutées en 2007 ou plus tard, je pense.

Vous pouvez jeter un oeil à Add-in Express, qui promet un programme d'installation pour toutes les versions, et est assez facile à utiliser.

0

Comme vous pouvez le dire par mes 3 questions que je suis en train de vérifier est de savoir si nous pouvons construire un installateur unique via l'utilitaire de configuration VS

Vous ne pouvez pas. Vous devez créer un installateur de programme d'installation personnalisé (setup bootstrapper).

Il y a plusieurs années, je dotNetInstaller avec le constructeur HTML GUI, aujourd'hui WiX toolset serait une meilleure solution, je pense.

Vérifiez comment les programmes d'installation PIA .msi sont construits avec Orca ou les installateurs .msi et .exe vérifient la vérification des journaux d'installation de Windows. En fonction des vérifications du registre, des vérifications de fichiers, des vérifications de produits installés, des versions de Windows et des versions de bureau, vous pouvez créer des conditions selon que le composant doit être installé ou non.

Oh, et je vous conseille de faire les installateurs de plug-ins sans conditions préalables et de les installer de façon conditionnelle avec votre bootstrappeur d'installateur personnalisé.

Questions connexes