После упаковки с MKBundle2 станок назначения жалуется на LibMono.so.Почему?
Вопрос
Я думал, что цель mkbundle2 должна была позволить машине без мономонтажной установки для запуска моно-приложения. Но это не так, кажется, упаковывает libmono.so. Я не уверен, что предполагается ли он или нет, но пункт назначения жалуется, что он не может найти libMono.so.0, когда я запускаю пакет. Почему это будет искать этот файл? И если это нужно, зачем это искать куда угодно, но в пакете? И если это должно быть в связке, почему не наложил его там? Я использую опцию «--deps» для включения всех зависимостей. Я что-то упускаю?
После добавления параметра --static я получаю этот результат на станке назначения:
Необработанное исключение: System.TypeinitializationException: исключение было брошено инициализатором типа для System.Windows.forms.xplatui ---> system.dllnotfoundException: libc AT System System.Windows.forms.xplatui: Uname (IntPTR) В System.Windows.forms.xplatui..cctor () [0x00000] в: 0
Использование экспорта mono_log_level= debug показывает больше информации:
. Mono-info: dllimport, пытаясь загрузить: 'libc'. MONO-INFO: DLLLIMPORT LOACLION Расположение: 'libc.so'. MONO-INFO: Библиотека загрузки ошибок DLLIMPORT: '/usr/lib64/libc.so: неверный заголовок эльфа. Моно-информация: DLLLIMPORT Loading Library: './Libc.co'. Mono-INFO: DLLLIMPORT Ошибка загрузки библиотеки загрузки ./Libc.SO: не удается открыть файл общего объекта: нет такого файла или каталога. MONO-INFO: DLLLIMPORT LOAGE: «LIBC». MONO-INFO: DLLLIMPORT Ошибка загрузки библиотеки LIBC: не удается открыть общий объект файла объекта: нет такого файла или каталога.
Это означает, что я пытаюсь бежать на машине с несовместимым оборудованием? Оба машины SUSE Linux Enterprise Server 11 (x86_64).
Решение
from Здесь у нас есть это:
- Депон: Эта опция будет объединять все ссылки на сборы для Сборки, перечисленные в параметрах командной строки. Это полезно для распространения автономного изображения.
Вы уверены, что вы не забываете ссылаться на сборку в командной строке?
Из этой темы:
Mono Community> General> Mono Community> MkBundle, статический , lgmodule
Похоже, что MkBundle не несет ответственности за упаковку этой сборки. Пользователь решил проблему, установив отсутствующие пакеты, связанные с GLIB.
Посмотрите на статический параметр Здесь :
- Статическое: по умолчанию mkbundle динамически ссылается на моно- и glib . Эта опция заставляет его статическую ссылку вместо этого.