我使用来自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