Laden...

Excel-Anwendung funktioniert auf ein mal nicht mehr - System.InvalidCastException

Erstellt von nicky vor 8 Jahren Letzter Beitrag vor 8 Jahren 13.245 Views
N
nicky Themenstarter:in
232 Beiträge seit 2011
vor 8 Jahren
Excel-Anwendung funktioniert auf ein mal nicht mehr - System.InvalidCastException

Hallo,

ich habe mir vor zwei Jahren eine Excel Anwendung geschrieben die plötzlich nicht mehr funktioniert. Nach einigen rumprobieren habe ich ein Test Programm ála Microsoft kompliliert und bekomme den selben Fehler:

Fehlermeldung:
Ein Ausnahmefehler des Typs "System.InvalidCastException" ist in ConsoleApplication1.exe aufgetreten.

Zusätzliche Informationen: Das COM-Objekt des Typs "Microsoft.Office.Interop.Excel.ApplicationClass" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Excel._Application" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{000208D5-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Bibliothek nicht registriert. (Ausnahme von HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).

Quelltext: https://msdn.microsoft.com/de-de/library/ms173186(v=vs.80).aspx

Der Fehler wird in der Zeile xlApp.Visible = true; geworfen.

Jetzt habe ich in den vergangen Jahren unterschiedliche Office Versionen installiert. Ursprünglich war es 2010, später 2013 und 2016 - jetzt allerdings wieder 2010, ist mein System dadurch "durcheinander gekommen"?

Die Lösungsansätze die ich bislang im Internet gefunden habe verweisen entweder auf Änderungen in der Registry, die allerdings bislang erfolglos blieben oder auf die Umstellung auf eine andere Komponente. Ich würde allerdings zu diesem Zeitpunkt nur ungern auf eine andere Komponente umrüsten.

Was kann ich noch probieren?

Viele Grüße

nicky

Hinweis von Coffeebean vor 8 Jahren

Bitte benutze die richtigen Tags [Hinweis] Wie poste ich richtig? Punkt 6

A
764 Beiträge seit 2007
vor 8 Jahren

Hallo nicky,

ich hatte das Problem auch mal. Das liegt daran, dass die Interop-Assemblies von 2013 auf 2010 nicht unbedingt abwärtskompatibel sind.

Du könntest mal folgendes ausprobieren:

  • Microsoft.Office.Interop.Excel.dll (bei mir Version 14) in einen Ordner legen
  • Im Projekt per Verweis einbinden
  • In den Eigenschaften für den Verweis Interop-Typen einbetten auf false stellen (und lokale Kopie auf true)

Gruß, Alf

N
nicky Themenstarter:in
232 Beiträge seit 2011
vor 8 Jahren

Hallo Alf Ator,

ich habe deine Schritte befolgt und den Ansatz eben mal ausprobiert. Leider hat es zu keiner Verbesserung geführt. Es ist wie verhext. 😃

nicky

N
nicky Themenstarter:in
232 Beiträge seit 2011
vor 8 Jahren

Hallo,

ich habe die Lösung auf stackoverflow gefunden, es funktioniert wieder! 😃

If this is not a code related error than please remove below given key from registry.

Steps:

Start--> Run --> regedit --> HKEY_CLASSES_ROOT-->TypeLib-->{00020813-0000-0000-C000-000000000046} --> 1.8/1.7 (Delete this)

Solution: This issue can be resolved by deleting an invalid registry key left over from the higher version of Office. Follow the above steps.

Cause: This issue is caused by a left over registry key if you have downgraded your version of Microsoft Office from either Office 2010 to Office 2007, or Office 2013 to Office 2010 or 2007.

Let me know if this solution is not helped to you

Quelle: http://stackoverflow.com/questions/28066719/unable-to-cast-com-object-of-type-microsoft-office-interop-excel-applicationcla