.NET/COM Interop 问题 - 打开 Outlook 2003 发送邮件对话框

标签 .net outlook office-interop

我们有一个用 VB.NET (CLR 2.0) 编写的 WinForms 应用程序,它可以执行很多与 Outlook 相关的工作。我们所做的其中一件事是以编程方式打开一个新的 Outlook 2003“撰写新电子邮件”表单,其中预先填充了“收件人”地址。

Me.WordApp = New Word.Application
Dim template As Object = System.Reflection.Missing.Value
Dim newTemplate As Object = System.Reflection.Missing.Value
Dim documentType As Object = Word.WdNewDocumentType.wdNewEmailMessage
Dim visible As Object = False
Me.WordDoc = Me.WordApp.Documents.Add(template, newTemplate, documentType, visible)
'then some other stuff

现在,这几乎在我们部署应用程序的任何地方都能完美运行 - 用户填写电子邮件主题和文本,点击发送,我们可以捕捉发送事件并做其他好事。

只有几个安装出现问题,我们无法深入了解。

以下是否给出了问题可能出在哪里的任何指示:

Could not load file or assembly 'office, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The located assembly's 
manifest definition does not match the assembly reference. (Exception from HRESULT: 
0x80131040)

据我们所知,这些只是 Office 2003 安装,带有 Outlook 和 Word,就像它工作正常的情况一样。

如果有任何想法,我将不胜感激 - 无论是关于如何解决此问题,还是关于实现相同目标的更好方法。

最佳答案

好的,已经排序了,非常感谢Olli his answer ,这让我走上了正确的道路。

他的“示例项目”链接将我带到了 this link about deploying VSTO solutions .

我在其中找到了揭示性的评论:

“仅当目标计算机安装了 .NET Framework 1.1 或更高版本时,Microsoft Office 应用程序才会安装主要互操作程序集。”

灯亮了 - 我设置了一个 VM,我在上面安装了(按以下顺序):

  • XP SP2
  • Office 2003(默认安装)
  • .NET 3.5 SP1(大型可再发行版)
  • 我的申请

宾果游戏 - 问题变得可重现,就像我要向社区寻求帮助的另一个问题一样。可以想象,我们所有的计算机以及大多数客户的计算机都已经在 Office 运行时安装了 .NET,因此通常这根本不是问题。

Office 重新安装未能修复它,“检测并修复”安装也是如此。

但是,“添加功能”安装允许您手动选择 .NET 可编程性支持选项,问题就消失了。

底线:

没有 .NET,没有带有 Office 安装的主要互操作程序集。

再次感谢奥利!

关于.NET/COM Interop 问题 - 打开 Outlook 2003 发送邮件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533718/

相关文章:

java - 从 Play Java 发送的 Outlook 365 电子邮件中的换行符

html - Outlook 2007 的变通方法是用边距将文本环绕在图像周围?

c# - 保存时执行的 Office 加载项

c# - 如何使用 MVVM 从 ViewModel 显示 View 并在 WPF 中设置该 View 的数据上下文

c# - 如何在 Linux 的单声道解决方案中删除对 System.Deployment 的引用?

.net - 命名 "core"程序集

c# - 从 Open Xml 文档创建 Microsoft Word Interop 文档

c# - WinForms 程序员的 WPF 是什么?

javascript - Outlook Office Addin 未在 div 中显示 HTML 页面

c# - 仅在特定 Excel 行中旋转文本