错误访问COM组件(Error accessing COM components)

2019-06-18 13:52发布

我内置的Microsoft Office Word中的加载项。 没有使用外接当Word中跑了作为管理员的问题,但是当它不跑作为管理员,有访问带状元件两种常见的例外。

第一种例外情况:

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)

当控制是通过下面的代码无效发生此错误:

ribbon.InvalidateControl("control-id");

而第二个例外:

Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()

以下代码的最后一行出现此错误:

object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

我怎样才能解决这个问题呢?

Answer 1:

问题解决了!

我以前安装的Office 2010,所以有在Windows注册表中一些出现不一致。 为了解决这些问题,打开regedit ,找到从错误的CLSID。

你会发现类似的东西了第二个错误:

HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}

随着子项:

  • ProxyStubClsid
  • ProxyStubClsid32
  • 类型库

看看的(Default)Version值的内部TypeLib

现在发现下面的节点,使用(Default)值作为<TypeLib ID>

HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>

由于该元素的孩子,你会发现一个以上的元素,然后的一个是Version的第一个注册的。 如果你检查别人的元素,你会发现,它们指向什么。 删除他人! 它解决了!



Answer 2:

我开始了同样的异常升级到最新Office版本后。 我尝试了一些建议的修复包括类似于@Victor描述的方式清理注册表。

什么最终帮助(尽管它可能是多种因素的组合)是“修复”安装:

程序和功能 →最新Office版本→ 修复



Answer 3:

Office修复为我工作。 在我来说,我已经安装了,我相信改变的配置项目,无法调出程序将数据从Excel工作簿到SQL迁移



Answer 4:

只需安装Office 2010 / MS字/ .NET可编程性支持。



Answer 5:

@Victor你让我为首的正确的道路上。 我的问题是不是在注册表中多个值而是从未添加Office365缺失值。 感谢你,我能找到我自己的解决方案。 千千万万的感谢。

详情请看这里的人还在寻找一个解决方案。



Answer 6:

我今天得到了同样的问题,VS2015和Office 2013改变目标平台到x64为我工作。



文章来源: Error accessing COM components