Как создать пакет .app mono для Mac OS

#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. Спасибо за помощь.