Estoy intentando crear un programa que abriría un nuevo mensaje de Outlook 2007.Outlook 2007 desde C#: excepción COM, TYPE_E_LIBNOTREGISTERED
He hecho una referencia desde la pestaña COM Microsoft Outlook 12.0 ObjectLibrary.
Estos artículos se presentaron en las referencias en VS:
Microsoft.Office.Core
Microsoft.Office.Inerop.Outlook
ahora trato de invocar siguiente código:
var _outlookInstance = new Microsoft.Office.Interop.Outlook.Application();
var _message = (OutlookApp.MailItem)_outlookInstance.CreateItem(OutlookApp.OlItemType.olMailItem);
donde OutlookApp == Microsoft.Office.Interop.Outlook espacio de nombres.
Invocando segunda línea de la lista me siguen dando esta excepción: (InvalidCastException)
Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass' to interface type 'Microsoft.Office.Interop.Outlook._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063001-0000-0000-C000-000000000046}' failed due to the following error: Library unregistered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
Ese código funcionó bien para Outlook 2003 en mi otra estación.
Estaré agradecido por cualquier idea sobre cómo solucionarlo.
Awesome find - eliminar 'HKEY_CLASSES_ROOT \ TypeLib \ {00062FFF-0000-0000-C000-000000000046} \ 9.5 hizo el truco! Esto es un error con el ** desinstalador de Office 2013 **. – SliverNinja
Buen hallazgo, eso solucionó mi problema +1 – Gabe
Eso no funcionó para mí, ya que no había un campo 9.5 excesivo. En mi caso, el problema fue que cuando me degradaron a Outlook 2010 modifiqué la ubicación de instalación (es decir, no en la carpeta predeterminada Archivos de programa). Sin embargo, Windows no actualizó en consecuencia el valor en 'HKEY_CLASSES_ROOT \ TypeLib \ {00062FFF-0000-0000-C000-000000000046} \ 9.4 \ 0 \ win64' Después de actualizar manualmente el valor y apuntarlo a la ubicación correcta, el problema fue resuelto – Doigen