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
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
@ '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