J'ai développé un complément Office 2007 C#. Il utilise clickonce pour le déploiement. Sur les systèmes avec Office 2010 tout va bien mais sur une machine avec XP SP3, NET 3.5sp1 et Office 2007, je reçois une erreur de chargement d'assemblage étrange.Clickonce Problème de référence d'assembly de complément Office lors du déploiement
Mon complément ne fait pas directement référence Microsoft.Office.Interop.SmartTag.dll
. Cela est référencé par Microsoft.Office.Tools.Commmon.v9.0.dll
- qui est référencé dans mon complément.
Lorsque le complément est installé avec clickonce, une erreur est signalée indiquant que le Microsoft.Office.Interop.SmartTag.dll
est introuvable dans le dossier d'installation local de mon complément. Les deux Microsoft.Office.Tools.Commmon.v9.0.dll
et Microsoft.Office.Interop.SmartTag.dll
sont dans le GAC avec les versions correctes.
J'ai utilisé Reflector
pour essayer de détecter le problème mais il résout facilement la référence Microsoft.Office.Interop.SmartTag.dll
en trouvant la DLL dans le GAC.
Quelles sont les raisons possibles de l'échec de mon installation clickonce? Les assemblages requis sont présents mais le GAC n'est évidemment pas consulté.
J'ai trouvé que l'ajout de |vstolocal
à la valeur de registre Manifest fait que tout fonctionne comme prévu mais je me demande encore pourquoi j'ai eu l'erreur en premier lieu.
VSTO - oui, PIA - no. Il s'avère que les assemblys PIA n'est pas requis pour Office 2007 car il est déjà installé par une installation standard. Néanmoins, ce n'est pas le problème car le système en question a déjà tous les prérequis déjà installés. – wpfwannabe
Vous ne pouvez pas compter sur les assemblys PIA déjà installés juste parce qu'Office 2007 est installé. C'est vrai d'Office 2010, mais pas 2007. Juste FYI. – RobinDotNet
Pouvez-vous expliquer pourquoi je ne peux pas compter sur les PIA préinstallés? Après avoir ajouté '| vstolocal', mon complément fonctionne comme prévu. Donc tout * EST * déjà installé. – wpfwannabe