Outlook 2007 von C # - COM-Ausnahme, TYPE_E_LIBNOTREGISTERED

8

Ich versuche, ein Programm zu machen, das neue Outlook 2007-Nachricht öffnen würde.

Ich habe von der COM-Registerkarte Microsoft Outlook 12.0 ObjectLibrary referenziert.

Diese Artikel wurden in VS in Referenzen angezeigt:

%Vor%

Nun versuche ich den folgenden Code aufzurufen:

%Vor%

wo OutlookApp == Microsoft.Office.Interop.Outlook-Namespace.

Beim Aufruf der zweiten Zeile der Auflistung bekomme ich diese Ausnahme: (InvalidCastException)

  

Das COM-Objekt vom Typ kann nicht umgewandelt werden   'Microsoft.Office.Interop.Outlook.ApplicationClass'   zum Schnittstellentyp   'Microsoft.Office.Interop.Outlook._Application'.   Dieser Vorgang ist fehlgeschlagen, da der   QueryInterface Aufruf auf der COM   Komponente für die Schnittstelle mit IID   "{00063001-0000-0000-C000-000000000046}"   aufgrund des folgenden Fehlers fehlgeschlagen:   Bibliothek nicht registriert.   (Ausnahme von HRESULT: 0x8002801D   (TYPE_E_LIBNOTREGISTERED)).

Dieser Code funktionierte für Outlook 2003 auf meiner anderen Station gut.

Ich werde dankbar sein für Ideen, wie man es löst.

    
PK. 27.02.2010, 13:46
quelle

4 Antworten

10

Dies kann auch passieren, wenn Sie eine Office 2013-Installation deinstalliert haben und zu Office 2010 zurückkehren. Möglicherweise sind noch einige Registrierungsschlüssel und DLLs vorhanden, die dazu führen, dass die Office-Anwendung die falsche (n) DLL (s) lädt.

Hier ist der Fix: Ссылка

    
Daniel Ranft 14.09.2012, 05:57
quelle
5

Office ist auf diesem Computer nicht ordnungsgemäß installiert. Sie können dies überprüfen, indem Sie mit Regedit.exe zu HKEY_CLASSES_ROOT\Interface\{00063001-0000-0000-C000-000000000046}\TypeLib navigieren, um die GUID der Typbibliothek zu überprüfen (sollte {00062FFF-0000-0000-C000-000000000046} sein), und dann zu HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046} , um zu überprüfen, ob die Typbibliothek tatsächlich korrekt ist registriert, unter Verwendung der korrekten Versionsnummer der Typbibliothek. Der letzte Teil sollte das Problem sein.

Wenn der Zielcomputer eine 64-Bit-Version von Windows ausführt, versuchen Sie, das Projekt + Eigenschaften, Build, Plattformziel auf x86 zu setzen.

    
Hans Passant 27.02.2010 16:44
quelle
1

Wenn Sie versuchen, von Visual Studio aus auf Outlook zuzugreifen, erhalten Sie folgende Fehlermeldung:

TF400424: Senden an Microsoft Outlook fehlgeschlagen: COM-Objekt vom Typ 'Microsoft.Office.Interop.Outlook.ApplicationClass' konnte nicht in den Schnittstellentyp 'Microsoft.Office.Interop.Outlook._Application' umgewandelt werden. Diese Operation ist fehlgeschlagen, weil der QueryInterface-Aufruf der COM-Komponente für die Schnittstelle mit IID '{00063001-0000-0000-C000-000000000046}' aufgrund des folgenden Fehlers fehlgeschlagen ist: Bibliothek nicht registriert. (Ausnahme von HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).

Gehen Sie folgendermaßen vor:

  1. Navigieren Sie mithilfe der Registrierung zu : HKEY_CLASSES_ROOT \ TypeLib {00062FFF-0000-0000-C000-000000000046}
  2. Löschen Sie die Versionsschlüssel (z. B. 9.5) für eine beliebige Version von Outlook, die nicht auf Ihrem System installiert ist, basierend auf der unten angegebenen Versionstabelle. Wenn Sie beispielsweise Outlook 2013 nicht verwenden, entfernen Sie den Eintrag "9.5". Wenn Sie Outlook 2010 nicht verwenden, entfernen Sie den Eintrag "9.4". LÖSCHEN SIE NICHT den Eintrag für die Version, die in Schritt 1 konfiguriert wurde

Outlook 2007 == & gt; 9.3

Outlook 2010 == & gt; 9.4

Outlook 2013 == & gt; 9.5

Referenz: Ссылка

    
zumalifeguard 24.01.2017 20:36
quelle
0

Hatte das gleiche Problem mit dem folgenden Code:

%Vor%

Das Ersetzen der ersten Zeile durch das Folgende löste es für mich.

%Vor%

(Beispiel in VB, sollte aber auch für C # gelten)

    
Striver 15.01.2017 11:14
quelle