Внедрение dylib в dll привязки Xamarin.Mac

Я создаю привязки для Xamarin.Mac / MonoMac. Я хотел бы встроить dylib в сгенерированный dll, как это сделано в Xamarin.iOS с атрибутом [LinkWith].

Возможно ли это сделать? если да то как? Или я должен загрузить dylib из потребляющего приложения? опять в этом случае, как?

Я пробовал: - удалить dylib в папке Native References (не работает) - добавить атрибут [assembly: MonoMac.RequiredFramework] (не находит dylib)


person Stephane Delcroix    schedule 07.03.2013    source источник
comment
Вы когда-нибудь понимали, как это сделать? У меня есть .dylib или несколько .a, которые я хотел бы включить в свой проект XamMac. Добавление в папку Native References, кажется, абсолютно ничего не делает...   -  person tofutim    schedule 07.02.2014
comment
@migueldeicaza однажды сказал, что мы работаем над этим   -  person Stephane Delcroix    schedule 07.02.2014


Ответы (1)


Мне удалось загрузить .dylib из потребляющего приложения, выполнив следующие действия:

  • Добавьте .dylib в свой проект как Content.
  • добавьте RequiredFrameworkAttribute:
    [assembly: MonoMac.RequiredFramework("mylib.dylib")]
  • зарегистрировать сборку из конструктора AppDelegate:
    public partial class AppDelegate : NSApplicationDelegate
    {
        public AppDelegate ()
        {
            Type t = typeof(ATypeFromTheAssembly);
            MonoMac.ObjCRuntime.Runtime.RegisterAssembly (t.Assembly);
        }
    }

Это по-прежнему не встраивает .dylib в сборку привязок, но квалифицируется как прогресс.

person Stephane Delcroix    schedule 11.03.2013
comment
Я пытался включить libz.dylib, но я думаю, что проблема в том, что libz - это Fat (имеет как i386, так и x86_64). - person tofutim; 07.02.2014