Проект iOS не ссылается на библиотеку stati c из проекта Binding в режиме Release - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть библиотека stati c, которая использовалась Sharp ie для генерации кода переноса. Библиотека была создана после этого (включая сгенерированную * .dll) успешно.

AppDefinition.cs содержит пространство имен и сопоставления, например:

namespace TheNamespace
{
    // @interface TheParameters : NSObject
    [BaseType(typeof(NSObject))]
    interface TheParameters
    {

Сама библиотека встроена в Release режим с LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Arm64.

Однако, при ссылке на этот проект привязки из моего проекта iOS, он работает только в режиме отладки. Когда я изменяю его на Release, пространство имен (и все связанные предложения) недоступно . Также, когда исследует ссылку на библиотеку привязок в Обозреватель объектов , она не отображает никаких элементов: она полностью пуста.

Просто отметим, что она становится доступной при изменении его в раскрывающемся списке на Debug и исчезании на Release, что интересно, независимо от того, какой фактически проект выбран в раскрывающемся списке Текущий проект !

В чем может быть проблема? Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

После некоторого поиска в Google я нашел решение. Проблема возникает из-за ошибки Visual Studio, я думаю. А также указано здесь . (И странно, что это не упоминается в документации Xamarin на веб-сайте Microsoft.

Для решения проблемы Binding Project (s) не должны находиться в одном решении с основным проектом . Просто удалите их и прикрепить библиотеку в качестве обычной ссылки.

0 голосов
/ 13 февраля 2020

Я думаю, что проблема должна возникать при сборке библиотеки stati c. При создании библиотеки stati c можно выбрать тип сборки выпуска / отладки.

enter image description here

На скриншоте выше показаны типы библиотек stati c после сборки, существует три типа (два - отладка, один - выпуск). Вы можете видеть, что tt различает выпуск и отладку.

...