IConverterSession을 사용하여 EML에서 MSG (MIME에서 MAPI)로 변환하려고했지만 COM 오류가 발생했습니다. C# MAPIMethods 클래스를 사용하여 IConverterSession을 래핑합니다 (예 : Save Mail in MIME format (*.eml) in Outlook Add-In).MIME MAPI IConverterSession COMException on Activator.CreateInstance
처음에는이 게시물 (https://blogs.msdn.microsoft.com/stephen_griffin/2014/04/21/outlook-2013-click-to-run-and-com-interfaces/)으로 해결 된 알 수없는 clsid의 문제가있었습니다.
지금 적절한 레지스트리 키를 편집 한 것으로, 나는 새로운 문제에 직면 : 첫째, 나는 오류 메시지The operating system is not presently configured to run this application
을 얻고, 내가 COMException 수 :
Retrieving the COM class factory for component with CLSID {4E3A7680-B77A-11D0-9DA5-00C04FD65685} failed due to the following error: 8007013d The system cannot find message text for message number 0x in the message file for . (Exception from HRESULT: 0x8007013D).
내 코드는 다음과 같습니다
Type converter = Type.GetTypeFromCLSID(MAPIMethods.CLSID_IConverterSession, true);
object obj = Activator.CreateInstance(converter);
MAPIMethods.IConverterSession session = (MAPIMethods.IConverterSession)obj;
을
"개체 obj = Activator.CreateInstance (변환기);"오류가 발생합니다.
COMException은 일반적으로 "형식이 COM 개체이지만 형식을 가져 오는 데 사용 된 클래스 식별자가 유효하지 않거나 식별 된 클래스가 등록되지 않았습니다."를 의미합니다. 따라서 Type converter = Type.GetTypeFromCLSID(MAPIMethods.CLSID_IConverterSession, true);
이 적절한 유형을 반환하지 않거나 어딘가에 누락 된 레지스트리 키가 있습니다.
저는 Win 64bit에서 Office 15 (2013) C2R 32 비트를 사용하고 있습니다. 응용 프로그램은 x86 빌드 구성에서 설정됩니다.
내가 누락 된 부분이 있습니까? 누구든지 도와 줄 수 있습니까?
안녕하세요, Dmitry, 답변 드릴 것 같습니다. 사실, 내 컴퓨터는 64 비트이고 Office는 32이지만 목표 빌드를 32 비트로 설정했습니다. – Antoine
Outlook 2013 C2R의 버전은 몇 개입니까? MS는 최근 IConverterSession이 Outlook 외부에서 생성되는 것을 방지하는 Outlook 2016 C2R (Outlook 2013에 대해 알지 못함)을 변경했습니다. –
(내 첫 번째 의견을 수정하려고 시도했지만 너무 늦었습니다 ...) 완벽하게 작동하지만 동료 동료와 공유하고 싶기 때문에 보너스를 사용하지 않으려했습니다. (Lotus에서 Outlook으로 마이그레이션했습니다. , 나는 이메일을 다시 받고 싶다). 그래서 나는 그것을 가능한 한 독립적으로 유지하려고 노력했다. – Antoine