LibreOffice 5 Bootstrap.bootstrap 引发 ExternalException,错误代码为 -2147467259

Posted

技术标签:

【中文标题】LibreOffice 5 Bootstrap.bootstrap 引发 ExternalException,错误代码为 -2147467259【英文标题】:LibreOffice 5 Bootstrap.bootstrap throws ExternalException with error code -2147467259 【发布时间】:2015-08-21 20:31:32 【问题描述】:

我在 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,如果这有影响的话。

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

我注意到我存储我的 dll 的文件夹嵌套在另一个同名文件夹中(即 LibreOfficePlug/LibreOfficePlug/[项目文件]),所以我将项目文件移动到上层文件夹并删除无关文件夹。当我这样做时,我使用的 .sln 具有主项目,而我使用的 dll 无法找到 LibreOfficePlug 项目(因为我移动了它)。所以我从 .sln 中删除了该项目并尝试重新添加它。起初我不小心将 LibreOfficePlug .sln 文件添加到主项目资源文件中,但我从那里删除了它并正确地将 LibreOfficePlug 项目添加到解决方案中。同样,这些事情似乎都可能无关紧要,但我想我会重新叙述导致它崩溃的事件,以防万一。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于LibreOffice 5 Bootstrap.bootstrap 引发 ExternalException,错误代码为 -2147467259的主要内容,如果未能解决你的问题,请参考以下文章

libreoffice安装

LibreOffice 工具栏和 UI 元素在升级到 5.1 后变得丑陋

LibreOffice 支持无障碍辅助的 5 种方式

linux下使用libreoffice将Office文档转PDF

从 LibreOffice 5 读取/写入 OpenOffice 图像标题和描述

CentOS安装LibreOffice