Laden...

Fehler MSB3304 bei Zugriff auf Excel

4 Antworten
315 Aufrufe
Letzter Beitrag: vor 13 Tagen
Fehler MSB3304 bei Zugriff auf Excel

Ich habe eine (zum Test) ganz simple WPF-Applikation geschrieben. Diese soll über die Interop-Schnittstelle auf Excel zugreifen. Dazu ist als Abhängigkeit die COM Interop.Microsoft.Office.Interop.Excel eingebunden.

Mit dieser Schnittstelle arbeite ich seit vielen Jahren ohne große Probleme. ABER JETZT...

Ich habe zwei Computer mit Windows 11 (64Bit) und Offive 2024 (64 Bit). Die gleiche Applikation läuft auf dem einen Computer ohne Probleme. Auf dem anderen kommt schon sofort nach dem Einbinden des COM-Objekts die Warnung MSB3304, d.h. "Die Abhängigkeiten des COM-Verweises "Microsoft.Office.Interop.Excel" konnten nicht ermittelt werden.".

Weiter komen dann Fehlermeldungen zu den Excel-Objects, z.B. dass deren Typ (z.B.  _Application) ungültig sei.

Ich habe alles versucht, was mir so einfällt, komme aber nicht auf das "Geheimnis" des Fehlers.

Hat ggf. jemand von Euch da eine Idee??

Danke im Voraus, Ralph

Mit jeder Versionsänderung von Office kann es sein, dass Du Deine Anwendung für Automation anpassen musst. Das war schon immer so, und wenn das bisher nicht der Fall war, war das reines Glück.

Automation über COM ist auch schon seit ~15 Jahren (seit Office 2013) nicht mehr der präferierte Weg, sondern OpenXML bzw. die JavaScript Schnittstellen bzw je nach Deinen gewünschten Funktionalitäten die Office 365 APIs. Spätestens mit dem Wechsel von Office auf Web-Oberflächen, was mit dem neuen Outlook schon begonnen hat, funktioniert COM eh nicht mehr. COM wird hier nicht mehr supported, auch VBA nicht mehr.

PS: Die Marketingsversionen wie Office 2024 bzw Office 365 etc sind nichtssagend. Daran kann man nicht mehr erkennen, welche Versionen wirklich drunter sind. Relevant sind die Versionen der Apps wie Word oder Outlook.

Microsoft® Outlook® for Microsoft 365 MSO (Version 2510 Build 16.0.19328.20244) 64-bit

SIehe auch https://learn.microsoft.com/en-us/officeupdates/update-history-microsoft365-apps-by-date

Microsoft passt aktuell immer wieder Schnittstellen im COM Model an. Das Problem dabei ist das schnell mal zwischen zwei Office Versionen gleichen Majorversionen eine Automation API nicht funktioniert. Wenn du neuere Versionen nicht brauchst fährt man am besten eine ältere Version der Library zu referenzieren und mitzuliefern z.B. die 15 Versionen aus Office 2013.

Wie Abt bereits geschrieben hat sind seid Office 2016 die Versionen nicht mehr aussagekräftig hinsichtlich der Hauptversion und via API hat sich die Version 16.**** nicht mehr geändert. Der einzige Weg eine vernünftige Versionsnummer zu bekommen ist via Registryauswertung über API bekommst du je nach verwendeter App mal mehr mal weniger Infos.

P.S. Microsoft liefert seid einiger Zeit auch keine aktualiserten Interop Bibliotheken aus. Wenn du immer die neusten brauchen solltest musst du die Typdefinitionen die mit dem VBA Editor von Office ausgeliefert nutzen um eine .net Bibliothek zu erstellen, die funktionieren aber nur für diese Office Version und später.

Mit freundlichen Grüßen
lutzeslife

Vielen Dank für die Tipps.

Aber das Problem ist ein ganz anderes: Ganz offensichtlich arbeitet das standardmäßige Setup-Programm fehlerhaft.

Ich habe es mittlerweise auf verschiedenen Geräten getestet: Nach der Installation von Office2024 unter W11 kann man im Dialog ganz normal arbeiten. Ein Zugriff über Interop brachte überall den gleichen COM-Fehler. Es hilft, den Reparaturlauf über Office zu starten. Anschließend ist alles in Ordnung. Woran es genau liegt, kann ich nicht sagen. Aber der Effekt ist wie gesagt auf mehreren unabhängigen Rechnern (und von unterschiedlichen Admins installiert) überall der gleiche.

Gruß

Ralph