Я успешно использовал этот код в 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();
Сейчас я работаю над проектом net core (v 3.1), который также должен использовать LibreOffice , но я получаю исключение:
System.InvalidOperationException: дескриптор не инициализирован. в System.Runtime.InteropServices.GCHandle.FromIntPtr (значение IntPtr) в uno.util.to_cli (ссылка * x) в uno.util. Bootstrap. bootstrap ()
Если я добавьте UNO_PATH, как предложено здесь
Environment.SetEnvironmentVariable("UNO_PATH", unoPath, EnvironmentVariableTarget.Process);
, затем я получу еще одно исключение:
System.Runtime.InteropServices.SEHException (0x80004005): внешний компонент выдан исключение. в cppu. bootstrap (ссылка *) в uno.util. Bootstrap. bootstrap ()
Майкл Шталь (LibreOffice) предложил проблему моста CLIuno с ядром net.
Я использую LibreOffice 6.4.0.3 и ту же версию SDK, NET Core 3.1, Windows 10 64 бит.
Кто-нибудь успешно загрузил LibreOffice с Net Core?