2010-09-15 24 views
3

J'ai donc écrit une méthode dans le produit de mon entreprise il y a un an et demi qui utilise l'automation COM d'Excel 2007 pour exporter des données, mais maintenant je constate qu'elle ne fonctionne plus sur des machines le bureau.
Problèmes avec Microsoft Excel COM Automation

J'ai testé la fonctionnalité de la méthode sur ma propre machine et obtenu le même résultat.

creuser plus profond, je trouve que quand j'aller aussi loin que

var excel = Excel.Application

Si je montre sur ajouter une l'objet Excel, je vois que chaque propriété renvoie une exception en fonte. Après quelques recherches, j'ai vu quelque chose à propos des clés de registre qui peuvent interférer avec l'automatisation. j'ai réussi à creuser à travers et supprimer une clé de Registre:

HKEY_CLASSES_ROOT\TypeLib{00020813-0000-0000-C000-000000000046}\1.7

Avec la valeur de chaîne suivante définie dans:

"PrimaryInteropAssemblyName"="Microsoft.Office.Interop.Excel, Version=14.0.0.0

Je puis a couru le même morceau de code à nouveau, seul cette fois, ça s'est parfaitement bien déroulé.

Autres machines dans le bureau J'ai testé l'application sur ont eu la même erreur, seulement je n'ai pas pu les réparer de la même manière.

Est-ce que quelqu'un d'autre a déjà rencontré ça?
Merci

Répondre

1

version 14 de Microsoft Office est Office 2010, donc je suppose que votre bureau a mis à jour de 2007 à 2010.

Maintenant, si votre ordinateur est une machine de développeur alors j'attendre à ce que vous avez l'assemblée Microsoft.Office.Interop.Excel, Version=14.0.0.0 sur votre ordinateur et ainsi votre réparation fonctionne.

Cependant, je suppose que les autres machines du bureau ont eu votre code déployé pour qu'ils aient l'assembly Microsoft.Office.Interop.Excel, Version=12.0.0.0, mais pas le Microsoft.Office.Interop.Excel, Version=14.0.0.0 déployé.

Si j'étais vous, je vérifierais d'abord.

Il peut également avoir été utile de décrire l'erreur réelle que vous avez rencontrée dans votre question, mais j'espère que ma réponse sera utile.

+0

Non, aucun produit Office 2010 n'est installé sur ma machine, à part SharePoint Designer, peut-être. L'erreur qui se produit est levée par COM - DISP_E_MEMBERNOTFOUND. Lors du débogage, il semble se manifester comme une exception de transtypage invalide. – stevenroberts

+0

@ 'stevenroberts' - Dans ce cas, l'assembly d'interopérabilité Office 14 doit avoir été installé avec Visual Studio. Après tout, si vous n'avez pas explicitement installé l'assembly interop, il doit provenir de quelque part et il est probable que les machines clientes ne l'ont pas. Avez-vous vérifié les? – Enigmativity