Fehlermeldung „Object does not match target type“ bei der Microsoft Office Word 2003-Automation von C# via Late Binding

Beschreibung

Bei der Microsoft Office Word 2003-Automation aus einer C#-Anwendung heraus trat beim Erstellen eines neuen Dokuments folgender Fehler (TargetException) auf (jeweils in verschiedenen Sprachen):

„Object does not match target type“ (Englisch)
„Das Objekt stimmt mit dem Zieltyp nicht überein“ (Deutsch)
„Het object komt niet overeen met het doeltype“ (Niederländisch)

Der Aufruf erfolgte über „Späte Bindung“ („Late Binding“) durch den Aufruf von Type.InvokeMember auf die Microsoft Office 2003 Word-Methoden Documents.Add oder Documents.Open.

Dieser Fehler trat interessanterweise nur auf manchen Systemen auf, nicht auf allen. Selbst bei identischen und komplett neu installierten Systemen (z.B. neues IBM Notebook mit Microsoft Windows XP Professional) zeigten manche Systeme diesen Fehler, andere wiederum funktionierten korrekt.

Ursache

Die genaue Ursache ist mir unbekannt, ich vermute eine (wie auch immer geartete) fehlerhafte Installation von Microsoft Office Word 2003.

Lösung

Der bei Google beschriebene Tipp hatte in allen Fällen Erfolg: Ich habe schlicht Microsoft Office Word 2003 deinstalliert und dann wieder neu installiert.

Der Fehler trat dann nicht mehr auf, ein Neustart des Betriebssystems war nicht notwendig.

Ergänzungen

2005-10-06:
Auf einigen Systemen hatte ich jetzt das Phänomen, daß auch eine Neuinstallation von Microsoft Office Word 2003 nichts geholfen hat. Die Fehlermeldung ist nach wie vor erschienen.

Außerdem war es recht ärgerlich und lästig sowie zeitintensiv jeweils auf den ganzen Arbeitsplatz-PCs Microsoft Office Word neu zu installieren. Deswegen musste eine andere Lösung her.

Die Microsoft Office Word-Automation bei der der Fehler auftrat wurde von mir via Late Binding gemacht. Mir kam da noch die Idee, das mit den Microsoft Office PIAs (Primary Interop Assemblies) zu machen.

Die Microsoft Office PIAs sind jeweils für eine bestimmte Microsoft Office-Version. Mein vorheriger Ansatz via Late Binding ging auch bei unterschiedlichen Microsoft Office-Versionen.

Da in meinem konkreten Fall aber immer Microsoft Office 2003 vorhanden war, konnte ich einfach die Microsoft Office 2003 PIAs verwenden.

Tatsächlich funktioniert die Microsoft Office-Automation mit den Microsoft Office 2003 PIAs fehlerfrei! Ich muß bei Gelegenheit ggf. mal mit Reflector nachschauen, was die bei der Initialisierung und Ähnlichem anders machen, daß das funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.