C# 使用Microsoft.Office.Interop.outlook读取*.msg outlook文件时出现问题

C# 使用Microsoft.Office.Interop.outlook读取*.msg outlook文件时出现问题,c#,outlook,msg,C#,Outlook,Msg,我正在写一段代码,它将处理从*msg Outlook文件中存储的电子邮件中提取的信息。我从中吸取了如何做这件事的想法。但是调用方法OpenSharedItem时会出现这样的错误System.AccessViolationException。有人知道问题出在哪里吗? 下面是导致错误的代码 Outlook._Application app = new Outlook.Application(); Outlook.NameSpace NS = app.GetNamespace("MAPI"); Out

我正在写一段代码,它将处理从*msg Outlook文件中存储的电子邮件中提取的信息。我从中吸取了如何做这件事的想法。但是调用方法OpenSharedItem时会出现这样的错误
System.AccessViolationException
。有人知道问题出在哪里吗?
下面是导致错误的代码

Outlook._Application app = new Outlook.Application();
Outlook.NameSpace NS = app.GetNamespace("MAPI");
Outlook.MAPIFolder inboxFld = NS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.MailItem fld =  (Outlook.MailItem) app.Session.OpenSharedItem("E://Projects//C#//message1.msg");

嗯。万一有人会遇到同样的问题,我终于有了答案。首先应该是

Outlook.MailItem fld =  (Outlook.MailItem) app.Session.OpenSharedItem("E:\\Projects\\C#\\message1.msg");
不同之处在于斜杠。

然后,您只需使用Outlook 2007或更高版本即可。就是这样:

我认为这可能是由于Outlook的版本。在某个地方,我发现它只在Outlook 2007之后才起作用。有人能证实吗?