I making an application that builds report in LibreOffice Calc using LO SDK libraries from 3.6 version. These dlls are .NET 2.0, afaik, and my application is .NET 3.5, so it works fine together.
But when I run application on an PC where LO 4.0 is installed, it looks like it trying to load dlls not from application folder (where correct dlls are copied), but from somewhere in host PC, as it throws exception "This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded" on load cli_uno.dll (when I try to run a report). Looks like LO 4 SDK dlls are assembled for .NET 4.0?
Well, it's not an option to rebuild application for .NET 4.0 (as it will repeat when there'll be any new .NET 5.0 dlls).
Is there any way to make application load dlls from its own folder only?
UDPATE That cli_uno.dll actually isn't included in my application at all. It is in LO installation folder and obviously called by those 'cli_*.dll' files, that I included in my application. But I can't control what version of LO will be installed! It just out of control by any assemly version settings. It just not right when application working fine with LO 3.6, but stop working after upgrade to LO 4.0. Seriously, I've made applications in ancient Delphi 7 using ancient libraries to connect to MS Excel (that was created when XP/2000 versions were actual) and it works fine with at least 2007 version.
Isn't it supposed to use interfaces, for applications of different versions, even different platforms, was able to interoperate, exchange data between them? May be I'm using LO SDK completely wrong?