我已经创建了一个使用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对象
1条答案
按热度按时间a14dhokn1#
如果您希望具有版本独立性,在添加了对所需office interop程序集的引用(例如
Microsoft.Office.Interop.Outlook.dll
)之后,右键单击dll引用并选择属性,然后在属性网格中将Embed Interop Types
设置为true
。如需了解更多信息:
Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio
如果在引用COM对象的应用程序中嵌入类型信息,则可以消除对主互操作程序集的需要(PIA)。此外,嵌入的类型信息使您能够实现应用程序的版本独立性。也就是说,您的程序可以编写为使用COM库的多个版本中的类型,而无需为每个版本指定特定的PIA。这是使用Microsoft Office库中对象的应用程序的常见情况。通过嵌入类型信息,同一内部版本的程序可以在不同计算机上的不同Microsoft Office版本中使用,而无需为每个Microsoft Office版本重新部署程序或PIA。