Если предположить, что SevenZipLib.dll
- это библиотека SevenZipLib в CodePlex , проблема заключается в SevenZipLib \ SevelZipLib \ SevenZipArchive.cs :
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern SafeLibraryHandle LoadLibrary(
[MarshalAs(UnmanagedType.LPTStr)] string lpFileName);
Проект содержит множество P / Invokes в kernel32.dll
(LoadLibrary()
, GetProcAddress()
, FreeLibrary()
), ole32.dll
(PropVariantClear()
), oleaut32.dll
(SafeArrayCreateVector()
) и т. Д.
Короче говоря, эта библиотека тесно связана с Windows и не будет работать на какой-либо платформе, отличной от Windows, не без особой работы.
Если вам нужна поддержка 7z в приложении Mono для Android, вам нужно заглянуть в другую библиотеку. Похоже, что 7-zip SDK включает в себя источник C # для чтения файлов LZMA, который не использует P / Invoke, так что, возможно, это сработает?