繁体   English   中英

在安装了VSTO COM加载项的系统上使用Office COM对象发生冲突

[英]Conflict Using Office COM Object on System with VSTO COM Add-in Installed

我们有一个WinForms应用程序,在这里我们必须使用COM来与Excel和/或PowerPoint交互(我知道,COM对象是一个主要的麻烦,我不想完全不用它们,但是至少现在我们别无选择)。

某些将要运行此应用程序的计算机还具有在Excel和/或PowerPoint 2007中安装的自定义VSTO COM加载项。 它在Office应用启动时加载,不会崩溃,并且似乎具有足够的异常处理能力。 该VSTO加载项是由我们公司开发的,因此我们有可用于进行必要更改的源代码。

当在代码中声明WinForms应用程序中的COM对象时,问题就显现出来了。 建立与该对象的连接后,无论连接到哪个Office应用程序(Excel或PowerPoint),通常都会导致RPC错误,即RPC Server Unavailable。

我们发现,如果仅在Excel / PowerPoint中禁用VSTO加载项,问题就会消失。 显然,VSTO加载项是在启动时执行的,但是我们在VSTO加载项中找不到任何会导致Excel / PowerPoint引发错误的异常。

因此,为了解决该问题,我们可以在建立与COM对象的连接之前以编程方式禁用任何活动的加载项,然后在完成后重新启用。 但是我们更愿意在可能的情况下以正确的方式解决此问题。

我意识到这可能是一个利基领域,通过在单独的应用程序中的代码将VSTO加载项和COM对象混合在一起,但是希望我们缺少一个明显的解决方案。

我读这本书的方式是,COM对象实际上是在“劫持”该Addin使用的活动连接,最后关闭它,使Addin处于孤立连接状态。 由于问题中既没有包含代码也没有包含错误,因此很难解决真正的问题。

为了解决您的问题,我建议您在与VSTO相关的MSDN论坛中发布您的问题,因为VSTO团队会对其进行积极监控。 不要犹豫,添加更多可用于解决问题的信息(代码,错误消息)。

http://social.msdn.microsoft.com/Forums/zh-CN/vsto/threads

-=马尔滕=-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM