Bootstrap LibreOffice с .NET Core выдает исключение

Я успешно использовал этот код в Net Framework 4.x:

        var unoPath = @"C:\Program Files\LibreOffice 5\program";
        Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + @";" + unoPath, EnvironmentVariableTarget.Process);
        var context = uno.util.Bootstrap.bootstrap();

Сейчас я работаю над проектом сетевого ядра (v 3.1), который также должен использовать LibreOffice, но я получаю исключение:

System.InvalidOperationException: дескриптор не инициализирован. в System.Runtime.InteropServices.GCHandle.FromIntPtr(значение IntPtr) в uno.util.to_cli(Reference* x) в uno.util.Bootstrap.bootstrap()

Если я добавлю UNO_PATH, как предложено здесь

Environment.SetEnvironmentVariable("UNO_PATH", unoPath, EnvironmentVariableTarget.Process);

то я получаю другое исключение:

System.Runtime.InteropServices.SEHException (0x80004005): внешний компонент вызвал исключение. в cppu.bootstrap(Reference*) в uno.util.Bootstrap.bootstrap()

Майкл Шталь (LibreOffice) предложил проблему моста CLIuno с ядром сети.

Я использую LibreOffice 6.4.0.3 и ту же версию SDK, .NET Core 3.1, 64-разрядную версию Windows 10.

Кто-нибудь успешно загрузил LibreOffice с помощью Net Core?


person Nomada    schedule 10.02.2020    source источник