C#Outlook Addin - 打开消息文件

时间:2015-08-12 15:36:36

标签: c# outlook add-in

好的,我试着解释一下这个问题。

我编写了一个Outlook扩展程序,将Mails,Task等与ERP系统相匹配。

它工作正常,但我有1个问题:

我将所有可以映射到ERP客户,Suplliers等的Outlook元素保存在ERP系统的文档数据库中。因此,每个项目/团队成员都可以打开最新版本的Outlook项目。

用户第一次打开项目时,每件事都没问题,第二次无法打开文件,因为它已在Outlook中打开。

请参阅social.msdn.microsoft.com

我知道Outlook“保存”每个msg文件的临时项目,但我无法释放该对象。

我不想退出Outlook我只是想在关闭后释放msg文件,以便用户可以在不关闭Outlook的情况下重新打开它。

但是我没有找到一种方法来释放它而不会打电话给Quit。

或者是否有重新显示当前结果项的选项?在片刻我不知道如何引用已经打开的msg文件。

我认为建立这些项目的词典非常沉重。

@SuperBiasedMan - 当然,到目前为止我尝试了两种方法:

// 1. Just open File in corresponding Viewer   
System.Diagnostics.Process.Start([PathToMsgFile]);
// 2. Using SharedItem Method to get an item Object 
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();

var item = app.Session.OpenSharedItem([PathToMsgFile]) as Microsoft.Office.Interop.Outlook.MailItem;
item.Display();

如果项目按预期显示,当用户关闭此文件并尝试重新打开它(不重新启动Outlook)时,用户会收到错误消息:

  

“无法打开文件:[PathToMsgFile] .msg。该文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。右键单击包含该文件的文件夹,然后单击“属性”以检查文件夹的权限。“

Outlook保持项目打开。 我发现释放它的唯一方法是致电:

app.Quit();

讨论(参见上面的链接)结论是Outlook在打开Msg文件时“保存”临时Outlook元素。我搜索关闭/删除/释放或任何此临时对象的可能性或重新打开它而不重新启动Outlook

@Dmitry:该文件来自远程计算机

0 个答案:

没有答案