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.