Autofac Build () генерирует исключение на последней Xamarin iOS, когда Linker настроен для Link All - PullRequest
0 голосов
/ 26 сентября 2019

После обновления до Visual Studio 16.3.0 (Visual Studio для Mac 8.3.1805) Autofac создает исключение при выполнении builder.Build() в проекте, который ранее работал:

Тип 'Autofac.Features.Indexed.KeyedServiceIndex'2 'не реализует интерфейс' Autofac.Features.Indexed.IIndex'2 '

В этом выпуске Visual Studio (и, возможно, и в более ранних версиях) iOS компилируетсяиспользуя Mono 6.4.0.198, и я подозревал, что это может быть то, что вводит изменение торможения.Альтернативно, компоновщик ведет себя по-другому с последней цепочкой инструментов.Все, что я могу сказать, это то, что раньше это работало, а теперь нет.

Следовать этим рекомендациям недостаточно: Кроссплатформенные и собственные приложения

1 Ответ

0 голосов
/ 26 сентября 2019

сильный текст Чтобы обойти эту проблему, сначала убедитесь, что Autofac установлен как в проекте iOS, так и в совместном проекте .NET Standard, а затем выберите один из следующих двух вариантов:

  1. Установите компоновщик на Don't link или Link Framework SDK's Only
    • Примечание. Это увеличит размер вашего приложения, особенно параметр «Не связывать».
  2. Или вы можете;добавьте --linkskip=Autofac (с учетом регистра!) к Additional mtouch arguments in iOS Build, найденному в свойствах проекта iOS.
    • Примечание. Это приведет лишь к небольшому увеличению размера вашего приложения, поскольку обеспечит включение всей сборки Autofac в ваш пакет приложений.

Обходят ли эти обходные пути, что Autofac больше не является безопасным компоновщиком?Другие варианты?

...