Outlook 2007 von C# - COM-Ausnahme, TYPE_E_LIBNOTREGISTERED
Ich versuche zu machen ein Programm, das neue Outlook 2007-Nachricht.
Habe ich aus verwiesen Registerkarte COM auf Microsoft Outlook 12.0 ObjectLibrary.
Diese Elemente zeigten sich in Referenzen, die in VS:
Microsoft.Office.Core
Microsoft.Office.Inerop.Outlook
Versuche ich jetzt aufrufen folgenden code:
var _outlookInstance = new Microsoft.Office.Interop.Outlook.Application();
var _message = (OutlookApp.MailItem)_outlookInstance.CreateItem(OutlookApp.OlItemType.olMailItem);
wo OutlookApp==Microsoft.Office.Interop.Outlook-namespace.
Beim aufrufen der zweiten Zeile von listing ich bekomme immer diese exception: (InvalidCastException)
Unable to cast COM object of type
'Microsoft.Office.Interop.Outlook.ApplicationClass'
Schnittstelle Typ
'Microsoft.Office.Interop.Outlook._Application'.
Dieser Vorgang ist fehlgeschlagen, da die
QueryInterface-Aufruf an die COM
- Komponente für die Schnittstelle mit IID
'{00063001-0000-0000-C000-000000000046}'
konnte aufgrund des folgenden Fehlers:
Bibliothek nicht registriert.
(Ausnahme von HRESULT: 0x8002801D
(TYPE_E_LIBNOTREGISTERED)).
Dass code, der gut funktioniert in Outlook 2003 auf meinem anderen station.
Werde ich dankbar sein, für irgendwelche Ideen wie es zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann dies auch passieren, wenn Sie deinstalliert haben, eine office-2013-installation und Sie zurück zu office 2010.
Es gibt vielleicht einige registry-Schlüssel und Dll-Dateien übrig, die Ursache der office-Anwendung zu laden, die falsche dll(s).
Hier ist der fix: http://www.fieldstonsoftware.com/support/support_gsyncit_2013.shtml
HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}\9.5
hat den trick! Dies ist ein Fehler mit dem Office 2013 uninstaller.Office ist nicht ordnungsgemäß installiert ist auf der Maschine. Sie können überprüfen, dass mit Regedit.exe navigieren Sie zu
HKEY_CLASSES_ROOT\Interface\{00063001-0000-0000-C000-000000000046}\TypeLib
überprüfen Sie die Bibliothek Typ GUID (sollte {00062FFF-0000-0000-C000-000000000046}), dannHKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}
um zu überprüfen, dass die Typ-Bibliothek ist in der Tat richtig registriert, mit den richtigen Typ Bibliothek-Versionsnummer. Der Letzte Teil sollte das problem sein.Wenn auf dem Zielrechner läuft ein 64-bit-version von Windows verwenden, versuchen Sie, das Projekt + Eigenschaften, Aufbau, Plattform Ziel auf x 86.
Wenn Sie versuchen, Zugriff auf Outlook aus Visual Studio und bekomme die Fehlermeldung:
TF400424: Failed to send to Microsoft Outlook: Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass', um den Schnittstellentyp " Microsoft.Office.Interop.Outlook._Application'. Dieser Vorgang ist fehlgeschlagen, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit IID '{00063001-0000-0000-C000-000000000046}' konnte aufgrund des folgenden Fehler: Bibliothek nicht registriert. (Ausnahme von HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
Folgendes tun:
Outlook 2007 ==> 9.3
Outlook 2010 ==> 9.4
Outlook 2013 ==> 9.5
Referenz: https://support.netdocuments.com/hc/en-us/articles/205219170--Library-Not-Registered-error-when-using-EMS-in-Outlook
Hatte das gleiche problem mit dem folgenden code:
Ersetzen Sie die erste Zeile mit den folgenden gelöst für mich.
(Beispiel in VB aber das gleiche sollte es auch für C#)