2013-06-06 6 views
2

При попытке создания проекта привязки возникают следующие ошибки. Информация немного загадочна, и я не уверен, что сломано/неправильно.Ошибка сборки проекта привязки Monotouch

CS0117 Ошибка: MonoTouch.Constants' does not contain a definition for NimbusLibrary '(CS0117) (MonoTouch.Nimbus)

CS1502

Ошибка: Лучший перегружен матч метод `MonoTouch.ObjCRuntime.Dlfcn.dlopen (строка, межд)' имеет некоторые недействительные аргументы (CS1502) (MonoTouch.Nimbus) CS1503

Ошибка: Аргумент #1' cannot convert объект 'выражение с типом `строка' (CS1503) (MonoTouch.Nimbus)

Иногда я замечаю, что когда я закрываю и снова открываю проект, а затем перестраиваю, сообщения об ошибках появляются не сразу, но вскоре они возвращаются.

Любые идеи? Дайте мне знать, если вам нужен источник для моего проекта привязки.

+0

Уходит ли, если вы очищаете решение перед его восстановлением? В MD/XS есть довольно старая ошибка, которая предотвращает создание проектов привязки, если на диске уже есть промежуточные файлы. – Krumelur

+0

Очистка по-прежнему не устраняет проблему. Я проверил свое решение на своем репо. Проверьте фиксацию. https://github.com/theonlylawislove/MonoTouch.Nimbus/tree/39f8cee373a2039240402035813b7717f1db18c8 –

+0

Эта фиксация может помочь выявить проблему. Комментирование этих свойств привело к тому, что сборка прошла. https://github.com/theonlylawislove/MonoTouch.Nimbus/commit/02cc1aa273d182e80c91298f23e178575b63423a –

ответ

4

Это потому, что вам не хватает параметр на [FieldAttribute] документированный в конце, что говорит

Если вы ссылаетесь статически, нет библиотеки, чтобы связываться, поэтому вам нужно использовать имя __Internal :

[Static] 
interface LonelyClass { 
    [Field ("MyFieldFromALibrary", "__Internal")] 
    NSString MyFieldFromALibrary { get; } 
} 

Так что ваши привязки прямо сейчас выглядит следующим образом

[BaseType (typeof (NIRecyclableView))] 
public partial interface NIPageView : NIPagingScrollViewPage 
{ 
    [Field ("NIPagingScrollViewUnknownNumberOfPages")] 
    int NIPagingScrollViewUnknownNumberOfPages { get; } 

    [Field ("NIPagingScrollViewDefaultPageMargin")] 
    float NIPagingScrollViewDefaultPageMargin { get; } 
} 

И это должно быть, как это

[BaseType (typeof (NIRecyclableView))] 
public partial interface NIPageView : NIPagingScrollViewPage 
{ 
    [Field ("NIPagingScrollViewUnknownNumberOfPages", "__Internal")] 
    int NIPagingScrollViewUnknownNumberOfPages { get; } 

    [Field ("NIPagingScrollViewDefaultPageMargin", "__Internal")] 
    float NIPagingScrollViewDefaultPageMargin { get; } 
} 

Это происходит потому, что все статические библиотеки в конце будут объединены с основным исполняемым файлом.

Надеюсь, это поможет.

Alex

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