Microsoft.Office.Interop.Excel funktioniert nicht auf 64-Bit

7

Ich habe ein Problem bei der Entwicklung von MS Visual Web Developer 2008 Express Ed festgestellt. Entwickeln von ASP.NET C # unter Windows7 64-Bit-Betriebssystem.

Ich versuche ein Excel-Dokument zu öffnen, aber es gibt mir Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Ich habe den Build für alle Prozessoren (Any CPU, x64, x86) konfiguriert, aber es funktioniert nicht. Ich suchte die Antwort im Internet, konnte aber nicht herausfinden, wie ich damit umgehen sollte.

Das seltsame Ding ist der gleiche Code, der auf dem gleichen System arbeitete, als ich auf Microsoft Visual C # 2010 Express entwickelte! Woher? ist es nicht die gleiche DLL, die hinter arbeitet?

Muss ich diese COM-DLL ändern, damit sie auf dem x64-System funktioniert?

Bitte helfen Sie mir, was kann ich tun?

Mein Code ist:

%Vor%     
Bush 24.11.2011, 22:39
quelle

1 Antwort

19

Nach dem Ausgraben des Internets habe ich herausgefunden, dass es einen Fehler in Microsoft Interop mit COM-Objekten gibt (zumindest mit meinem Fall, der MS Excel 2010 ist).

Der Fehler ist, dass .NET überprüft, ob die Lokalisierung des Threads (C # oder VB-Code) für die zuvor installierte MS Excel-Lokalisierung geeignet ist. Andernfalls wird die Microsoft.Office.Interop -Bibliothek als alt oder ungültig angezeigt.

Ihre Thread-Lokalisierung wird von Ihren regionalen Computereinstellungen abgeleitet (über das Kontrollfeld -> Region und Sprache)

Dann gibt es zwei Möglichkeiten, um dieses Problem zu lösen:

  1. Ändern der Thread-Lokalisierung (nach Code)
  2. Installieren Sie das Sprachpaket für Ihr Office

Die erste Lösung lautet wie folgt:

%Vor%

Hoffe es hilft :) gr8 Tag

    
Bush 25.11.2011, 22:49
quelle

Tags und Links