我有Visual Studio 2012专业版,我想为" Microsoft Outlook 15.0对象库"添加一个参考。在我的web项目中,但我在COM中找不到它,这是我的Visual Studio屏幕截图: -
所以有人可以建议我如何添加" Microsoft Outlook 15.0对象库"到我的2012年视觉工作室?
答案 0 :(得分:0)
好吧,如果没有安装Outlook,你怎么能期望它的类型库存在?您当然可以在安装了Outlook 的计算机上创建互操作dll,但是在没有Outlook存在的情况下,您的代码仍然无法运行。
更糟糕的是,Outlook(就像任何Office应用程序一样)无法在服务(例如IIS)中运行。您可以使用扩展MAPI(C ++或Delphi)来编辑OFT文件,但在C#中执行此操作远非微不足道。您仍然需要安装Outlook才能使用扩展MAPI系统。在C#中,您可以尝试使用Redemption - 它仍然需要MAPI系统,但与OOM不同,它的RDO对象系列可以在服务中使用。在您的情况下,您可以调用RDOSession。GetMessageFromMsgFile
(它适用于MSG和OFT文件),修改返回的RDOMail对象的Subject属性,然后调用RDOMail.Save
答案 1 :(得分:0)
我如何添加" Microsoft Outlook 15.0对象库"到我的2012年视觉工作室
看起来你只需要先安装Outlook。
无论如何,Microsoft目前不推荐也不支持任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)的Microsoft Office应用程序自动化,因为Office可能在此环境中运行Office时,会出现不稳定的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。
作为一种解决方法,您可以考虑使用Outlook所基于的低级API - 扩展MAPI。或者只使用该API周围的任何第三方包装器。
如果您只处理Exchange帐户,您也可以考虑使用EWS或Outlook REST API,有关详细信息,请参阅EWS Managed API, EWS, and web services in Exchange。