2013-05-09 4 views
1

У меня довольно простое приложение, которое я построил с помощью MonoDevelop 3.0/XCode 4.0/.NET 4.0 на OS X 10.7 (Lion). В принципе, у меня есть графический интерфейс Windows и графический интерфейс Mac для приложения, и они совместно используют библиотеку классов. Библиотека классов очень проста (намеренно) и проходит тесты MoMA с летающими цветами. Мой OS X GUI отлично работает на моей машине с ОС OS X, но когда я создаю файл .pkg и устанавливаю его на тестовую машину OS X, он вообще не запускается. У меня есть время выполнения Mono, установленное на тестовом компьютере - только время выполнения, а не SDK или MonoDevelop. Приложение будет открывать, но как только я сделать вызов в общей библиотеке, он терпит неудачу сMonoMac не удалось загрузить сборку или зависимость

System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «ххх» или один из его зависимостей.

Моя разделяемая библиотека имеет только следующие зависимости:

  • системы
  • System.Configuration
  • System.Core
  • System.Xml.Linq
  • System.Data.DataSetExtensions
  • Microsoft.CSharp
  • System.Data
  • System.Xml

Конечно основные рамки Mono поддерживает все эти сборки, не так ли? Что мне не хватает? Я не могу поверить, что освобождение простого приложения вроде этого (через .pkg-файл, а не AppStore) настолько сложно! Может ли кто-нибудь указать мне в правильном направлении? Благодарю.

+0

В прошлом я успешно создал файл MonoMac pkg. Так что можно. –

+1

Да, согласен, это возможно. Я создал файл .pkg для приложения, у которого не было никаких внешних ссылок, и он работал нормально. Вопрос в том, успешно ли вы выпустили файл MonoMac pkg, который ссылается на библиотеку классов, созданную где-то еще? Получил ли он доступ к данным? Имели ли они какие-то те же зависимости, что и я? Просто сказать, что вы сделали это, это не очень помогает ... извините. – LandonC

+0

На самом деле, IIRC, я создал библиотеку классов непосредственно внутри MonoDevelop. И он использует только функции .NET 2. Возможно, вам следует исследовать в * * ... или одну из своих зависимостей ... * * часть и получить информацию о том, какие зависимости говорят об ошибке? –

ответ

1

ОК, так, общий момент для ноба/лба: причина, по которой мое приложение запускалось на моей ОС OS X, но не на тестовой коробке? .NET Framework! Я построил библиотеку классов с Visual Studio 2012/.NET 4.5/Windows 7, проверил ее с помощью MoMA, затем скопировал ее в мою ОС OS X, установил ссылку на нее в моем проекте MonoMac, и все было в порядке, не так ли? Это потому, что на этом ящике были MonoDevelop и .NET framework! Когда я создал свой .pkg и установил его в новом окне OS X, установка была достаточно умна, чтобы загружать и устанавливать среду Mono, но не платформу .NET, и кто может обвинить ее? Решение: постройте библиотеку классов против Mono 4.0 и используйте , что сборка в моей версии MonoMac! Задача решена.

Спасибо за помощь и комментарии. Пожалуйста, простите основную глупость этого вопроса: я не только Mono/OS X noob, но и разработчик рабочего стола noob. Я веб-парень, чтобы кричать вслух!

Смежные вопросы