当我调用新的Microsoft.Office.Interop.Word.Application()时如何解决异常

时间:2019-05-11 07:32:50

标签: c# ms-word com ms-office office-interop

当我调用新的Microsoft.Office.Interop.Word.Application()进行初始化时,发生了错误。消息如下:

  

无法将类型为“ Microsoft.Office.Interop.Word.ApplicationClass”的COM对象转换为接口类型为“ Microsoft.Office.Interop.Word._Application”。该操作失败是因为在COM组件上对具有IID'{00020970-0000-0000-C000-000000000046}'的接口的QueryInterface调用由于以下错误而失败:库未注册。 (来自HRESULT的异常:0x8002801D(TYPE_E_LIBNOTrated)。)

在MSDN(this page)中搜索后获得了一些帮助。 但是,当我检查 HKEY_CLASSES_ROOT \ Wow6432Node \ Interface {00020970-0000-0000-C000-000000000046} \ TypeLib 时,我发现我的“版本”是3.0而不是8.6,“(默认)”是{00020905 -0000-4B30-A977-D214852036FF}而不是{00020905-0000-0000-C000-000000000046}。在 HKEY_CLASSES_ROOT \ Wow6432Node \ TypeLib {00020905-0000-0000-C000-000000000046} 中,应该只有 1个子项,而不是8.6。

我尝试将 HKEY_CLASSES_ROOT \ Wow6432Node \ Interface {00020970-0000-0000-c000-000000000046} \ TypeLib 中的版本更改为8.7,并将(默认)更改为{00020905-0000-0000- 0000-c000-000000000046},但仍然无法正常工作。 我还根据this page的说明尝试“快速修复”并完全重新安装Office。如何修改注册表项才能成功?

我的Word版本是Professional 2019(点击运行)。

此外,我确定我的代码正确。因为我在另一台可以完美执行的计算机上编写了代码。

这是我的一些代码:

    Microsoft.Office.Interop.Word.Application wordApp;
    Microsoft.Office.Interop.Word.Document wordDoc;
    wordApp = new Microsoft.Office.Interop.Word.Application();
    wordApp.Visible = visible;
    Object Nothing = Missing.Value;
    wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

0 个答案:

没有答案