#c# #mono #bundle
#c# #mono #пакет
Вопрос:
Я пытаюсь создать пакет .app для моей программы mono для запуска на Mac OS X, но, несмотря на то, что я прочитал практически все статьи и документацию по macpack и связыванию mono, ни один из методов не работает.
С помощью macpack двоичные файлы успешно объединяются в пакет .app:
macpack -m:x11 -o:. -r:sqlite3.dll -r:Nini.dll -r:extraIcons.ini -r:APP_DATABASE.db3 -r:APP_Values.db3 -r:./Documents/manual.pdf -r:GemBox.Spreadsheet.dll -r:Mono.Data.SqliteClient.dll -a:APP.exe -n: ПРИЛОЖЕНИЕ
. Когда я пытаюсь запустить программу из пакета, это происходит:
FFMACM-2:MacOS dev$ open -a APP
LSOpenURLsWithRole() failed for the application /Users/dev/Workspace/Software/APP.app with error -10810.
Я пытался использовать этот метод, но скрипт завершается сбоем со следующей ошибкой:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Nini, Version=1.1.0.0, Culture=neutral, PublicKeyToken=691faec150a7fa7b' or one of its dependencies.
File name: 'Nini, Version=1.1.0.0, Culture=neutral, PublicKeyToken=691faec150a7fa7b'
at APP.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
logout
У меня закончились идеи. The Nini.dll вот где это должно быть. Я использую GTK # для графического интерфейса.
Комментарии:
1. Используете ли вы моно-версию Nini?
Ответ №1:
Создание пакета для macOS X теперь выполняется с помощью MonoMacPackager. Вы можете найти подробности здесьhttp://www.mono-project.com/MonoMacPackager.
Однако проблема, которую вы видите здесь, заключается в том, что в вашем пакете отсутствует ваша dll (сборка Nini). Он должен быть в вашем пути к приложению (после того, как оно было объединено) для правильной загрузки.
Комментарии:
1. Мне удалось заставить его работать с помощью ручного метода — я поместил файл Nini в каталог .app. Спасибо за помощь.