Word 2010 addin ne se charge pas, vsto 2010

notre machine de développement est un matériel 64 bits tournant sous Windows 7 Professional N (64 bit), 64 bit Office Professional 2010 et Visual Studio Professional 2010.

nous avons créé un Word 2010 (Application Level Add-In) en utilisant .NET Framework 4, Ribbons et Windows installer targeting Office 2010. Nous avons tout suivi, des tutoriels en ligne officiels MSDN au point à plusieurs reprises. Pour notre installateur, nous avons sélectionné .NET 4 client profile et Windows installer 3.1 comme prérequis, depuis Office 2010 a VSTO 4.0 runtime installé et .net framework 4 n'a pas de fonctionnalité PIA. Dans les conditions de lancement, nous avons vérifié la disponibilité de L'ÉFVP partagée D'Office 2010 et de L'ÉFVP de Word 2010 en utilisant les identificateurs de composants appropriés. De plus, nous avons vérifié la disponibilité de l'exécution VSTO, comme indiqué dans L'article MSDN.

nos chargements D'Add-In et exécute avec la pleine fonctionnalité de seulement dans Visual Studio debug ( F5). Construire le projet setup crée les fenêtres installateur (msi). L'Installer installe l'Add-In sur la machine sans aucune erreur. Cependant, après avoir installé L'Add-In lorsque nous essayons d'ouvrir N'importe quel document Word 2010, nous sommes témoins du comportement suivant:

  1. nous essayons d'ouvrir N'importe quel document Microsoft Word 2010, L'écran de démarrage de Word 2010 apparaît et nous pouvons voir notre Add-In être chargé "Chargement [notre] Add-In" mais alors Word 2010 ne s'ouvre pas. L'écran de démarrage disparaît et aucun message d'erreur n'est affiché.

  2. ouvrir le document word pour la deuxième fois seulement les feux de ce message (pas de mot 2010 l'écran de démarrage de l'époque):

    Word a éprouvé un sérieux problème avec le '[Our] word addin' add-in. Si vous avez vu ce message plusieurs fois, vous devriez désactiver cet ajout et vérifier si une mise à jour est disponible. Voulez-vous désactiver ce module?'

    en cliquant sur Non, allume brièvement L'écran de démarrage de Microsoft Word 2010 et puis il arrête de charger à nouveau (disparaît). En cliquant sur Oui, ouvre Word 2010 avec le [Our] ajouter dans désactivé. Vérifié en cliquant sur Fichier-Options-AddIns. Regardé sous les Add-Ins D'Application désactivés

    VSTO_SUPPRESSDISPLAYALERTS=0 et VSTO_LOGALERTS=1 a été d'aucune utilité. Nous avons vérifié notre répertoire temporaire, il n'y avait pas de journaux.

  3. depuis que la méthode ci-dessus n'a pas fonctionné j'ai téléchargé le projet échantillon à partir de ce lien nommé <!-Déploiement d'une solution VSTO 2010 pour Office 2007/2010 à l'aide de Windows Installer" et utilisé le projet approprié trouvé sous développement de bureau - Setup and Deployment Projects SamplesFX40AddIn DeploymentAll User Install for 64-bit Office.

    J'ai d'abord testé la solution pour charger correctement le projet Add-In demo Excel 2010 en créant et en exécutant l'installateur (MSI), puis nous avons ajouté Notre projet AddIn Word au fichier de solution par fichier et nous l'avons construit correctement ( CTRL+ SHIFT+ B). Il a même couru à partir de Visual Studio debug (F5) correctement. Puis nous avons reconfiguré le projet de configuration existant pour supprimer le projet de démonstration Excel et charger la sortie principale de notre Add-In word, [OurAdd-In].vsto et [OurAdd].DLL.les dossiers du Manifeste. Nous avons actualisé les dépendances du projet et pris les mesures appropriées pour exclure les dossiers pertinents. Nous avons maintenu les vérifications du registre intactes et ajouté des conditions de lancement pour vérifier L'efficacité de Word 2010.

    l'installateur construit avec succès et installé sans erreurs mais malheureusement nous avons été témoins du même comportement de Word 2010 tel que décrit précédemment.

nous avons aussi essayé le débogage en utilisant Windows event logging. J'ai trouvé cet événement avec l'id d'événement 4096:

************** Exception Text **************
Microsoft.VisualStudio.Tools.Applications.Deployment.FrameworkVersionMismatchException: <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
 <framework targetVersion="4.0" profile="Client" supportedRuntime="4.0.30319" />
 <framework targetVersion="4.0" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>

nous avons besoin de créer un installateur pour notre Add-In Word à la fois pour 32 bits et 64 bits Word 2010.


j'ai fait d'autres recherches et voici ce que j'ai trouvé.

J'ai utilisé AddInSpy pour enquêter davantage et c'est l'information de débogage que j'obtiens ...

<addIn>
 <Item>1</Item> 
 <Host>Word</Host> 
 <Running>true</Running> 
 <Loaded>false</Loaded> 
 <Type>VSTO</Type> 
 <FriendlyName>[OURADDIN]WordAddIn</FriendlyName> 
 <ProgID>[OURADDIN].WordAddIn</ProgID> 
 <CLSID>n/a</CLSID> 
 <Manifest>C:Program FilesMicrosoft[OURADDIN]Setup2010[OURADDIN]WordAddIn.vsto|vstolocal</Manifest> 
 <DllPath>C:Program FilesMicrosoft[OURADDIN]Setup2010[OURADDIN]WordAddIn.dll</DllPath> 
 <LoadBehavior>3</LoadBehavior> 
 <RegHive>HKCU</RegHive> 
 <AssemblyName>?</AssemblyName> 
 <CLR_version>?</CLR_version> 
 <Exposed>false</Exposed> 
 <Interfaces>?</Interfaces> 
 <FormRegions>n/a</FormRegions> 
 <VSTOR>2008</VSTOR> 
 <Installed>?</Installed> 
 <PubVer>n/a</PubVer> 
 <Status>Alert</Status> 
 <StatusDescription>Add-in DLL path is not found. System.BadImageFormatException: Could not load file or assembly 'file:///C:Program FilesMicrosoft[OURADDIN]Setup2010[OURADDIN].dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
File name: 'file:///C:Program FilesMicrosoft[OURADDIN]Setup2010[OURADDIN].dll'
  at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  at System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
  at System.Reflection.Assembly.ReflectionOnlyLoadFrom(String assemblyFile)
  at AddInSpy.AssemblyScanner.GetAssemblyInfo(String fileName, String hostName, Boolean isVstoAddIn)

Assembly manager loaded from: C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorwks.dll
Running under executable C:UsersInteranceDownloadsAddInSpyAddInSpy.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = Interance-PCInterance
LOG: Where-ref bind. Location = C:Program FilesMicrosoft[OURADDIN]Setup2010[OURADDIN].dll
LOG: Appbase = file:///C:/Users/Interance/Downloads/AddInSpy/
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This is an inspection only bind.
LOG: No application configuration file found.
LOG: Using machine configuration file from C:WindowsMicrosoft.NETFrameworkv2.0.50727configmachine.config.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft/[OURADDIN]Setup2010/[OURADDIN]AddIn.dll.
ERR: Failed to complete setup of assembly (hr = 0x8013101b). Probing terminated.
</StatusDescription> 
 </addIn>

je crois que ce qui est intéressant, au-dessus sont les lignes suivantes

cet assemblage est construit par un runtime plus récent que celui actuellement chargé d'exécution et ne peut pas être chargé...

responsable de L'assemblage chargé à partir de: C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorwks.dll

LOG: en utilisant le fichier de configuration de la machine C:WindowsMicrosoft.NETFrameworkv2.0.50727configmachine.config.

D'après ce que J'ai compris, Word 2010 essaie de charger mon Add-In en utilisant le Gestionnaire D'assemblage et le fichier de Configuration de la Machine faisant référence à la version F/W v2.0.50727 alors qu'il devrait être de référencement Framework64v4.0.30319 depuis que j'ai construit mon Add-In en utilisant .NET 4. Une conséquence est le message d'erreur 'This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded...'

je pense que c'est peut-être la source. Toutes les pensées pourquoi cela pourrait se produire et comment résoudre il?


Hmm... Je pense que j'aurais dû le mentionner plus tôt, mais j'utilise open xml 2 sdk pour créer/lire des fichiers word dans mon Add-In Word 2010 avec .NET f / w 4. J'ai suivi les documentation fournie ici. Si vous faites défiler cette page, vous trouverez dans la section Introducing Open XML SDK Format Architecture sous-section layer de soutien de système qu'il supporte .net F / w 3.5 et actuellement L'Open XML Format SDK est basé sur la norme Ecma-376.

de plus, après quelques heures de louchage et de lecture de nombreux articles tels que Chris Rae'sarticle détaillé où il déclare Qu'Office 2010 utilise une autre norme, ISO/IEC 29500, comme format de fichier par défaut alors Qu'Office 2007 supporte ECMA-376. En outre, il stipule que:

ISO / IEC 29500 est un descendant direct de L'ECMA-376. Il est si direct un descendant, en fait, que L'ECMA-376 2e édition est identique à ISO / IEC 29500.

j'ai trouvé que la couche de support du système Open XML Format SDK Architecture support .net F/w 3.5 et actuellement L'Open XML Format SDK 2 est basé sur la norme Ecma-376.

Lien de Référence

donc je me demande juste si Open XML SDK 2 est la source de mon problème? Puisque ISO / IEC 29500 est un descendant D'ECMA-376, puis-je utiliser Open XML SDK 2 pour créer/modifier des documents word 2010 dans mon code?

est-ce la raison pour laquelle le gestionnaire d'assemblage et le fichier de configuration de la machine se chargent à partir de <!--10?

12
demandé sur KronoS 2010-10-06 16:57:05

2 réponses

Open XML SDK 2 était la cause, j'ai évité Open XML SDK 2 et mon AddIn fonctionne parfaitement maintenant. J'ai reconstruit mon projet à partir de zéro en utilisant Microsoft Interop pour lire/écrire des documents Microsoft Office 2010.

le problème est qu'il n'y a pas beaucoup de documentation à lire pour les développeurs. J'ai fait le travail grognon en lisant des articles et en résolvant le problème moi-même.

espérons que d'autres n'auront pas à faire face à la même épreuve.

7
répondu Hamza 2010-10-12 07:37:40

Voir peut-être le lien suivant vous aidera... Comment créer un personnalisé programme d'installation.

cela m'a aidé, et j'ai eu un scénario quelque peu similaire (un Addin Word 2010 + SDK XML Open 2.0 - déployé sur la machine à partir de Windows XP Service Pack 32 bit à Windows 7 Professional 64 bit).

Espérons qu'il vous aide.

0
répondu George 2011-10-14 14:33:41