Я успешно использовал этот код в 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?