无法转换Office Interop Word的COM对象

时间:2014-03-12 02:00:51

标签: .net com ms-office office-interop

我的应用程序具有导出到Microsoft Word的功能,但由于我已从Microsoft Office 2010升级到Microsoft Office 2013,因此无法正常运行。

以下是代码:

Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Office.Interop.Word.Application();
appVersion.Visible = false;

这是错误消息:

  

无法转换类型为' Microsoft.Office.Interop.Word.ApplicationClass'的COM对象。接口类型' Microsoft.Office.Interop.Word._Application'。此操作失败,因为QueryInterface调用COM组件上的接口与IID' {00020970-0000-0000-C000-000000000046}'由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))。

有人告诉我编辑注册表,但IID" {00020970-0000-0000-C000-000000000046}"在我的注册表中不存在。

4 个答案:

答案 0 :(得分:5)

运行Office的修复安装通常可以解决该问题。

答案 1 :(得分:1)

我遇到了完全相同的问题,重新安装Office 2013解决了我的问题。

答案 2 :(得分:1)

我从使用Word Interop切换为使用后期绑定。快速修复,不影响重构大量代码...

之前:

OfficeWord.Application msword = new OfficeWord.Application();

之后:

Type wordType = Type.GetTypeFromProgID("Word.Application");
dynamic msword = Activator.CreateInstance(wordType);

解决了我的一堆公司计算机上的问题,这些公司计算机在通过客户支持进行Office升级后开始出现此问题。

答案 3 :(得分:-1)

旧的问题,但是在尝试创建新的Word应用程序时遇到了同样的问题,完全相同的错误消息。问题很简单,一旦我无奈关闭VS并去做其他工作。当我打开word时,它会检索Word关闭时尚未保存的文档,并想知道我要如何处理它们。我告诉它删除它们,关闭单词,我的代码工作正常。仍在努力解决此问题,但我想我可以把它放到这里,以免其他人在简单的情况下不必重新安装Office。