4 ms·
Thanks, I'll give it a try. I've done a lot of interop in Windows so it'll be good to leverage to Linux.
by zwieback 6y ago
Thanks, I'll give it a try. I've done a lot of interop in Windows so it'll be good to leverage to Linux.
- merb 6y agoit's a little bit harder when your linux library is not inside LD_LIBRARY_PATH or the windows one is not inside a path. but there are tricks to override the loading behavior, it's just a little bit tricky since you need a loading context, which can load other c# dll's without having a reference to them. it's basically like that: AssemblyLoadContext loads the managed assembly (like YourPackage.NativeApi which contains the DllImport) and the AssemblyLoadContext that loads via LoadUnmanagedDll all paths to the DllImports. you also need a Shared Library for the calling package and the dll import package so that you can do (Type)Activator.CreateInstance(LoadContext.LoadFromAssemblyName(YourDllImportAssemblyName))