我使用Winform创建了一个表单来发送电子邮件。我的Outlook 2010窗口正在打开并且运行正常。但是,在我的朋友计算机上,由于他有Outlook 2013,因此无法正常工作。是否可以创建一个适用于Outlook 2010和2013的发送邮件。以下是我正在使用的代码:
var outlookApp = new Outlook.Application();
Outlook.MailItem mailItem = outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = this.txtTitle.Text;
mailItem.HTMLBody = this.HtmlText;
mailItem.HTMLBody = mailItem.HTMLBody + ReadSignature();
mailItem.Importance = Outlook.OlImportance.olImportanceLow;
mailItem.Display(true);
此外,我使用的COM是 Microsoft Outlook 14.0对象,我知道对于Outlook 2013,它是 Microsoft Outlook 15.0对象
答案 0 :(得分:1)
如果您希望版本独立,请在添加对所需办公室互操作组件的引用后,例如Microsoft.Office.Interop.Outlook.dll
,右键单击dll引用并选择属性,并在属性网格中设置{{1} } Embed Interop Types
。
了解更多信息:
Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio
如果在引用COM的应用程序中嵌入类型信息 对象,您可以消除对主互操作程序集的需要 (PIA)。此外,嵌入式类型信息使您可以 实现应用程序的版本独立性。那就是你的 可以编写程序以使用来自COM的多个版本的类型 库不需要每个版本的特定PIA。这是一个 使用Microsoft对象的应用程序的常见方案 Office图书馆。 嵌入类型信息可以实现相同的构建 一个程序,用于处理不同版本的Microsoft Office 不需要重新部署程序或不同的计算机 每个版本的Microsoft Office的PIA。