我使用來自3.6版本的LO SDK庫製作了一個在LibreOffice Calc中生成報告的應用程序。這些DLL是.NET 2.0,afaik,而我的應用程序是.NET 3.5,所以它一起工作得很好。試圖從其文件夾中加載dll的應用程序
但是,當我在安裝了LO 4.0的PC上運行應用程序時,它看起來像試圖從應用程序文件夾(其中正確的dll被複制)加載dll,但從主機PC中的某處,因爲它會拋出異常「此程序集由比當前加載的運行時更新的運行時構建,無法在加載cli_uno.dll時加載(當我嘗試運行報告時)。看起來LO 4 SDK dll是爲.NET 4.0組裝的?
那麼,它不是一個重新編譯.NET 4.0應用程序的選項(因爲它會在有新的.NET 5.0 dll時重複)。
有沒有什麼辦法讓自己的文件夾中的應用程序加載DLL?
UDPATE cli_uno.dll實際上並未包含在我的應用程序中。它位於LO安裝文件夾中,顯然是由我的應用程序中包含的'cli _ *。dll'文件調用的。但我無法控制將安裝何種版本的LO!它只是由任何組裝版本設置失去控制。當應用程序與LO 3.6一起正常工作時,它不正確,但在升級到LO 4.0後停止工作。說真的,我在古代Delphi 7中使用古老的庫連接到MS Excel(這是在XP/2000版本實際上創建的)時創建的應用程序,並且至少在2007版本中運行良好。
是不是應該使用接口,對於不同版本的應用程序,甚至不同的平臺,是否能夠互操作,在它們之間交換數據?可能是我使用LO SDK完全錯誤?
可能重複? http://stackoverflow.com/questions/267693/how-can-i-force-net-to-use-a-local-copy-of-an-assembly-thats-in-the-gac –
看起來像,我我會研究它,謝謝。 – yaapelsinko
正如我現在所看到的,它不是在控制應用程序組合版本設置 - 'cli_uno.dll'不是我的應用程序的一部分,但LO安裝,並且它由我的應用程序調用。我已經更新了這個問題。 – yaapelsinko