У меня есть проект .NET, написанный на C #, который связан с библиотекой CoolProp (доступно здесь https://github.com/CoolProp/CoolProp).. Он вызывает функции CoolProp с помощью PInvoke.
К сожалению, мне нужно запустить эту программув среде Linux (именно AWS лямбда-env https://docs.aws.amazon.com/en_us/lambda/latest/dg/current-supported-versions.html).
На данный момент я хочу выполнить его с ядром .NET (команда dotnet run
) на моем ПК с ОС Ubuntu, но я всегда получаю следующую ошибку:
Unhandled Exception: System.DllNotFoundException:
Unable to load shared library 'libCoolProp.so' or one of its dependencies.
In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibCoolProp.so.so: cannot open shared object file: No such file or directory
at Test1.Program.PropsSI(String Output, String Name1, Double Prop1, String Name2, Double Prop2, String Ref)
at Test1.Program.Main(String[] args) in /home/user/Desktop/TestDllInUbuntu/Test1/Program.cs:line 23
Программа тестирования:
using System;
using System.Runtime.InteropServices;
namespace Test1
{
class Program
{
[DllImport("libCoolProp.so")]
private static extern double PropsSI(string Output, string Name1, double Prop1, string Name2, double Prop2, string Ref);
static void Main(string[] args)
{
double propsRes = PropsSI("H", "T", 300.0, "Q", 0.0, "R410A");
Console.WriteLine(propsRes);
}
}
}
Program.cs
находится в той же папке, что и libCoolProp.so
.
Примечания:
- Та же самая программа в Windows 10, скомпилированная и запущенная с .Net Core с ее
libCoolProp.dll
работами. - работает та же самая программа в Ubuntu 18, скомпилированная и выполненная с Mono Runtime .
Как решить проблему совместимости между CoolProp lib и .Net Core runtime?