Malheureusement les réponses ici ne couvrent pas tout à fait toutes les bases.
Code produit
Cela ne semble pas être fiable - nous sommes à la recherche d'une version minimale, pas une version spécifique. Bien que le code de produit ne soit en théorie supposé changer que pour les versions majeures, la version de VSTO sur ma machine - 10.0.40303 - a un code produit de {A0FE0292-D3BE-3447-80F2-72E032A54875}. Cela suggère que Microsoft ne les maintient pas nécessairement stables, donc je suggère que ce n'est pas une bonne option.
Version du fichier
Une autre option peut être de vérifier la présence/version du VSTO eux-mêmes assemblées, qui peuvent généralement être en% PROGRAM FILES% \ Common Files \ Microsoft Shared \ VSTO \ 10.0. Cependant, je dirais que ce répertoire est pas garanti - le répertoire réel semble être spécifié dans le Registre, mais évidemment cette solution est maintenant pas mieux que de simplement obtenir la version du registre directement ...
Registre
Le passage par le registre est probablement la seule option qui reste.
Malheureusement, la version d'exécution VSTO peut apparaître dans l'une quelconque des 4 emplacements de Registre:
- HKLM \ SOFTWARE \ Microsoft \ VSTO Runtime Setup \ v4 (32 bits, VSTO installé à partir de l'installation d'Office 2010)
- HKLM \ SOFTWARE \ Microsoft \ VSTO Runtime Setup \ V4R (32-bit, VSTO installé de redistributable)
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VSTO Runtime Setup \ v4 (64- bit, VSTO installé à partir installation d'Office 2010)
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VSTO Runtime Setup \ V4R (64 bits, VSTO installé à partir redistribuable)
Note: Je n'ai pas une source définitive pour cela - je suis en train de concocter des bribes d'informations, par exemple, this blog post by Wouter van Vugt et this SO answer. Il peut y avoir plus que cela.
En outre, il peut y avoir des exigences de version minimale, même si je pense que, dans la pratique, cela ne va affecter les personnes exécutant des versions préliminaires de Office 2010:
Visual Studio 2010 Outils pour Office Runtime est également livré avec Microsoft Office 2010. Toutefois, au moment d'Office 2010 RTM, le runtime avec Office prend uniquement en charge les solutions Office qui ciblent le .NET Framework 3.5. Si votre solution cible le .NET Framework 3.5, , il peut être exécuté si Office 2010 est installé ou si le composant logiciel redistribuable 2010 Tools for Office Runtime de Visual Studio est installé. Si vos solutions Office ciblent le .NET Framework 4, vous devez redistribuer l'environnement d'exécution de Visual Studio 2010 Tools pour Office (citation).
La 2ème réponse ici (avec VSTORFeature_CLR40) est probablement plus correcte. Je viens d'avoir un scénario où la première entrée de registre (HKLM \ Microsoft \ vsto runtime setup \ v4 \ Install) a été trouvée mais mes addins ne se chargeraient pas - et en fait VSTO n'a pas été installé. – PandaWood
Quelqu'un peut-il élaborer sur la façon dont on peut détecter si le VSTOR40 installé est x86 ou x64? J'ai installé toutes les combinaisons des runtimes x86 et x64, et les clés mentionnées ci-dessus sont les seules jamais créées - tout est sous le WOW6432Node - ce qui signifie qu'il n'y a aucun moyen de déterminer la «bitness» du runtime installé ... Notez qu'Office 2010 est disponible en versions 32 et 64 bits, et que les processus .net générés seront du même type que l'installation d'Office http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/8d70d66c-fe87-4f38-b154-5804b871e153 /) – Adam
J'ai découvert que 'VSTORFeature_' n'existe que dans les installations x64. S'il vous plaît voir ma réponse ci-dessous pour les installations x86. –