2015-08-21 172 views
1

我在LibreOffice 4中爲LibreOffice編寫了一個C#.dll文件,並且編譯並運行正常。我下載了LibreOffice 5並獲得了該插件。我做了一些看起來像是紅鯡魚的事情,現在當我嘗試調用Bootstrap.bootstrap()時,它會返回一個ExternalException,並顯示消息「External component has thrown an exception。」。我的直覺是引導程序找不到LibreOffice安裝,但它在過去運行良好。LibreOffice 5 Bootstrap.bootstrap拋出異常錯誤代碼-2147467259

堆棧跟蹤看起來像這樣

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項目正確添加到解決方案中。再次,這些事情似乎都可能是無關的,但我想我會敘述導致它破裂的事件,以防萬一。

回答

1

我也遇到了同樣的問題。我所做的是將LibreOffice 4 URE文件夾複製到當前的LibreOffice 5文件夾中。在此之後它工作正常。你可以試試這個。