2009-02-10 60 views
2

我们有一个用VB.NET(CLR 2.0)编写的WinForms应用程序,它可以处理很多Outlook相关的东西。我们所做的一件事是以编程方式打开一个新的Outlook 2003'撰写新电子邮件'表单,并预先填入'to'地址。现在.NET/COM Interop问题 - 打开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,就像在情况下,它工作正常。

我会非常感谢任何想法 - 无论是如何解决这个问题,还是更好的实现相同目标的方法。

回答

1

我有一个类似的Excel 2003加载项的经验。您是否在开发机器上安装了Office 2003和Office 2007?如果是这样,请仔细检查项目中的参考文献部分。我对Office 11有依赖性,但在Office 12的互操作程序集下使用。

我认为Assembly Binding Redirection正在给我带来麻烦。

编辑:微软的example projects帮了很多。另外一个问题是某些机器上的安全设置(请参阅示例安装项目中使用的SetSecurity项目)。

2

好的,这是排序,我感谢Olli his answer,这让我走上了正轨。

他的“示例项目”链接导致我到this link about deploying VSTO solutions

在我发现透露出评论:

“Microsoft Office应用程序安装主互操作程序集只有当目标计算机具有.NET框架安装1.1或更高版本。”

灯亮了 - 和我建立了一个虚拟机,在我安装(按以下顺序):

  • XP SP2
  • 的Office 2003(默认安装)
  • .NET 3.5 SP1(大可再发行)
  • 我的应用程序

宾果 - 问题成为可重复,就像另一个我は我会去问社区的帮助。正如你可以想象的那样,当我们所有的计算机和大多数客户端都安装了.NET时,.NET已经安装了,所以通常这根本不是问题。

虽然办公室重新安装仍未能解决,但“检测和修复”安装也是如此。

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

底线:

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

再次感谢Olli!

+0

不客气Chris!老实说,我对开发Office加载项的总体经验感到失望。通过Visual Studio向导看起来很简单,但部署很痛苦。 – 2009-02-11 14:53:45

相关问题