2010-05-24 8 views
1

Je reçois l'erreur suivante lors de la référence de l'assembly Microsoft.Office.Interop.Word dans mon application asp.net.Erreur de temps de compilation Word Interop

Le type 'Microsoft.Office.Interop.Word.ApplicationClass' existe dans les deux

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Word\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Word.dll 

et

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Word\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Word.dll 

Auparavant, je recevais l'erreur mais le 12.0.0.0 était dans la Répertoire PIA sous Visual Studio, mais le message d'erreur était le même, sauf pointant vers un chemin différent. Depuis lors, j'ai copié la DLL au GAC, mais avec la même erreur.

Je pensais que .Net était censé prendre soin de cela. Est-ce que quelqu'un peut m'aider?

BTW, je fais cela en utilisant Visual Studio .Net 2008

Répondre

0

Ceci est du previous answer, mais avec des informations pertinentes inclus, dans le cas où les matrices de référence de lien pourriture:


Problems with Primary Interop Assembly Versioning : En utilisant le fichier .config et la redirection de liaison d'assembly, j'ai finalement réussi à me débarrasser de l'exception initialement signalée. J'ai créé un fichier .config contenant les informations sur les redirections de liaison d'assembly. Le fichier .config a ensuite été copié dans un répertoire contenant les fichiers binaires de l'application d'hébergement. Maintenant, l'ancien et les plugins coexistent et fonctionnent correctement sans avoir besoin d'utiliser la méthode Marshal.CreateWrapperOfType lors de la conversion d'un composant COM, il semble donc qu'il existe une solution de contournement et que je n'ai même pas besoin de modifier le GAC. Il y a encore quelques problèmes à résoudre mais pour l'instant il semble qu'il y ait une solution plausible.

<configuration> 
<runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
<dependentAssembly> 
       <assemblyIdentity name="MyCompany.Assembly1.Interop" 
           publicKeyToken="25578904345626a0" 
           culture="neutral" /> 
       <bindingRedirect oldVersion="1.0.0.0" 
           newVersion="1.0.1.0"/> 
       <codeBase version="1.0.1.0" 
         href="F:\MyApp\bin\Primary Interop Assemblies\MyCompany.Assembl1.Interop.dll"/> 
     </dependentAssembly> 
<dependentAssembly> 
       <assemblyIdentity name="MyCompany.Assembly2.Interop" 
           publicKeyToken="25578904345626a0" 
           culture="neutral" /> 
       <bindingRedirect oldVersion="9.0.0.0" 
           newVersion="9.0.1.0"/> 
       <codeBase version="9.0.1.0" 
         href="F:\MyApp\bin\Primary Interop Assemblies\MyCompany.Assembly2.Interop.dll"/> 
     </dependentAssembly> 
     </assemblyBinding> 
</runtime> 
</configuration> 

[il y a plus de discussion de la cause sous-jacente, d'autres solutions possibles, mais au-maladroit lien]