LibreOffice 5 Bootstrap.bootstrap抛出ExternalException错误码-2147

本文关键字:错误 误码 -2147 ExternalException 抛出 Bootstrap bootstrap LibreOffice | 更新日期: 2023-09-27 18:09:15

我在LibreOffice 4中为LibreOffice编写了一个c# .dll,并使其编译和运行良好。我下载了LibreOffice 5并安装了插件。我做了一些事情,似乎他们必须是转移注意力,现在,当我试图调用Bootstrap.bootstrap()它返回一个ExternalException与消息"外部组件抛出了一个异常。"我的直觉是,bootstrap无法找到LibreOffice安装,但它在过去工作得很好。

堆栈跟踪如下所示

at cppu.bootstrap(Reference<com::sun::star::uno::XComponentContext>*) at uno.util.Bootstrap.bootstrap() at LibreOfficePlug.Office.getPDF(String fileURL) in C:''projects''zbuildsrc''LibreOfficePlug''Office.cs:line 20

Office.cs是类名,getPDF是接受URL并将其转换为PDF的函数

.dll仍然编译得很好,我仍然可以从主项目访问函数,但是当它调用Bootstrap.bootstrap()时,它会在LibreOffice代码中抛出异常,所以我不知道如何挖掘问题的根源。我调用dll的项目是用c++编写的,但我用c#编写了这个dll,如果这有区别的话。

我所做的事情,我很确定是红鲱鱼如下(这些都发生在我成功地使用dll与libreoffice 5)

我注意到我存储dll的文件夹嵌套在另一个同名文件夹中(即LibreOfficePlug/LibreOfficePlug/[项目文件]),所以我把项目文件移到上面的文件夹中并删除无关的文件夹。当我这样做时,我使用的.sln包含主项目和我使用的dll无法找到LibreOfficePlug项目(因为我移动了它)。因此,我从.sln中删除了该项目,并试图重新添加它。起初,我不小心只是将LibreOfficePlug .sln文件添加到主项目资源文件中,但我从那里删除了它,并将LibreOfficePlug项目正确地添加到解决方案中。再说一遍,这些事情似乎都是不相关的,但我想我还是把导致它破裂的事件讲一遍,以防万一。

LibreOffice 5 Bootstrap.bootstrap抛出ExternalException错误码-2147

我也遇到过同样的问题。我所做的是将LibreOffice 4 URE文件夹复制到当前的LibreOffice 5文件夹中。在这之后,它工作得很好。你可以试试这个。