Right now I’m evaluating the LexActivator for our C# solutions. I’ve imported the LexActivator nuget package and compiled the project for multiple plattforms. As long as I’m running it under x86 or x64 everything works, whether its linux or windows.
Unfortunately I’m unable to run the application under ARM linux systems. I get the following the error message:
Unhandled exception. System.DllNotFoundException: Unable to load shared library 'LexActivator' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libLexActivator: cannot open shared object file: No such file or directory
If I copy the ARMhf so lib (libLexActivator.so) from the download page into the binary folder and duplicate it under the name (libLexActivator32.so) I can start the application, but get the following message:
Unhandled exception. Cryptlex.LexActivatorException: The product id is incorrect.
at Cryptlex.LexActivator.IsLicenseGenuine()
It seems like at least the arm runtimes are missing from the nuget package.
Am I doing something wrong here, or does the LexActivator nuget package not work with arm systems in the current state?
Thank you for your fast response and the update. Unfortunately its still not working for me for me. Now I get the following error:
Unhandled exception. System.DllNotFoundException: Unable to load shared library ‘LexActivator32’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libLexActivator32: cannot open shared object file: No such file or directory
at Cryptlex.LexActivatorNative.IsLicenseGenuine_x86()
at Cryptlex.LexActivator.IsLicenseGenuine()
If I use 3.15.3 I’m back at the error from my initial post:
Unhandled exception. System.DllNotFoundException: Unable to load shared library ‘LexActivator’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libLexActivator: cannot open shared object file: No such file or directory
at Cryptlex.LexActivatorNative.SetProductDataA(String productData)
at Cryptlex.LexActivator.SetProductData(String productData)
It seems like there is something broken internally. It first checks for libLexActivator.so, then libLexActivator32.so.
If i provide both files manually I’m stuck with:
Unhandled exception. Cryptlex.LexActivatorException: The product id is incorrect.
at Cryptlex.LexActivator.IsLicenseGenuine()
This can only happen if it is being run on a Windows system, this function can never be called on a Linux or macOS system. Can you provide details about your ARM machine and OS?
Can you again try 3.15.2 and see the error message, if it is using the x86 suffixed function or A suffixed function? If the Windows check is working you should not be getting x86 suffixed function in the stack trace.
When using 3.15.2, IsLicenseGenuine_x86() is called. As far as I can see, there is no Windows Check in LexActivator.IsLicenseGenuine(), just a pointer size check.
IsWindows? : False
Arm - Linux 5.10.17-v7+ #1421 SMP Thu May 27 13:59:01 BST 2021
Unhandled exception. System.DllNotFoundException: Unable to load shared library ‘LexActivator32’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libLexActivator32: cannot open shared object file: No such file or directory
at Cryptlex.LexActivatorNative.IsLicenseGenuine_x86()
at Cryptlex.LexActivator.IsLicenseGenuine()
Ah! now we got the exact issue. It is invoking the incorrect function. The current code assumes only 32 bit Windows machines not the 32 bit Linux machines. Thanks for your help, we will do the fix and update when it is released.