Я думал, что цель mkbundle2 - позволить машине без моно запускать моно приложение. Но это не похоже на упаковку libmono.so. Я не уверен, должен ли он или нет, но конечный компьютер жалуется, что не может найти libmono.so.0, когда я запускаю пакет. Зачем ему искать этот файл? И если это необходимо, зачем его искать где-нибудь, кроме как в комплекте? И если он должен быть в комплекте, почему mkbundle2 не поместил его туда? Я использую опцию «--deps» для включения всех зависимостей. Я что-то упустил?
После добавления опции --static я получаю этот результат на конечном компьютере:
Необработанное исключение: System.TypeInitializationException: исключение было выдано инициализатором типа для System.Windows.Forms.XplatUI ---> System.DllNotFoundException: libc
в (управляемый оболочкой) System.Windows.Forms.XplatUI: uname (intptr)
в System.Windows.Forms.XplatUI..cctor () [0x00000] в: 0
Использование экспорта MONO_LOG_LEVEL = отладка показывает больше информации:
Mono-INFO: DllImport пытается загрузить: 'libc'.
Mono-INFO: место загрузки DllImport: 'libc.so'.
Mono-INFO: Ошибка загрузки библиотеки DllImport: '/usr/lib64/libc.so: неверный заголовок ELF'.
Mono-INFO: библиотека загрузки DllImport: «./libc.so».
Mono-INFO: Ошибка загрузки библиотеки DllImport './libc.so: не удается открыть файл общего объекта: такого файла или каталога нет'.
Mono-INFO: загрузка DllImport: 'libc'.
Mono-INFO: Ошибка загрузки библиотеки DllImport 'libc: невозможно открыть общий объектный файл: такого файла или каталога нет.
Значит ли это, что я пытаюсь работать на машине с несовместимым оборудованием? Обе машины являются SUSE Linux Enterprise Server 11 (x86_64).