我有一个简单的问题。
我安装了PIA Office15.0 for outllook,并在我的winform .net应用程序中提供了参考。
我只想知道,如果我将此应用程序部署在outlook版本较低的计算机上(例如outlook 2007/2010),我的应用程序是否可以正常工作?
对不起,这是14.0 outlook PIA推荐人,由我给我的应用程序。代码是
` Dim OutlookMessage As outlook.MailItem Dim AppOutlook As New outlook.Application Try Dim oApp As Microsoft.Office.Interop.Outlook._Application oApp = New Microsoft.Office.Interop.Outlook.Application
Dim oMsg As Microsoft.Office.Interop.Outlook._MailItem
oMsg = oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
oMsg.Subject = P_Subj
oMsg.Body = P_Body
oMsg.To = P_To
'oMsg.CC = sCC
If Trim(P_AttachPath) <> "" Then
Dim sBodyLen As Integer = Int(P_Body.Length)
Dim oAttachs As Microsoft.Office.Interop.Outlook.Attachments = oMsg.Attachments
Dim oAttach As Microsoft.Office.Interop.Outlook.Attachment
oAttach = oAttachs.Add(P_AttachPath, , sBodyLen, P_AttachPath)
End If
oMsg.Send()
MsgBox("Mail sent to outlook successfully. ", MsgBoxStyle.Information, "")
oApp = Nothing
oMsg = Nothing '它给出了office 2007的错误。
发布于 2015-04-09 21:01:18
我建议使用与Outlook/Office的最低版本相对应的PIA。因此,您可以确保不使用后续版本中引入的方法和属性。一般来说,如果嵌入互操作类型(请阅读下面的更多内容),它将不会出现任何问题。
从.NET Framework4开始,公共语言运行库支持将COM类型的类型信息直接嵌入托管程序集中,而不是要求托管程序集从互操作程序集中获取COM类型的类型信息。由于嵌入的类型信息仅包括托管程序集实际使用的类型和成员,因此两个托管程序集可能具有相同COM类型的截然不同的视图。每个托管程序集都有一个不同的type对象来表示其COM类型视图。公共语言运行库支持接口、结构、枚举和委托的这些不同视图之间的类型等效。您可以在MSDN中的Type Equivalence and Embedded Interop Types文章中了解更多信息。
另请参阅Walkthrough: Embedding Types from Managed Assemblies (C# and Visual Basic)。
发布于 2015-04-09 22:08:14
我一直在使用Microsoft Office 2010:可在我的几个应用程序中重新分发的主互操作程序集,我可以报告,在运行Office 2013/2010的Windows 8.1/8/7上部署是完美的。我还成功地将其部署到运行Office2003的XP计算机上,但这并不能保证。2010 PIA可再发行文件可从http://www.microsoft.com/en-us/download/details.aspx?id=3508下载。
https://stackoverflow.com/questions/29538712
复制相似问题