Отказ iOS Xamarin.Forms на страницах XAML с пользовательскими элементами управления - PullRequest
0 голосов
/ 03 сентября 2018

Я работаю над проектом Xamarin.Forms, для которого недавно я обновил общие проекты с PCL до .NETStandard.

В этот момент я столкнулся с проблемами сборки, возникающими из-за нескольких моих файлов XAML пользовательского интерфейса, с ошибкой:

Не удалось разрешить сборку: ‘MyAssembly, версия 0.0.0.0, Культура = нейтральная, PublicKeyToken = null ’

Было обнаружено, что проблемные файлы относятся к пользовательским элементам управления XAML. Найдя в сети нескольких людей с похожими проблемами, я в итоге обнаружил, что могу обойти эту проблему, установив XamlCompilationOptions для этих страниц с Compile до Skip. Сейчас проект строится для iOS и Android.

Версия Android работает нормально, однако для версии iOS происходит сбой при попытке загрузки одной из этих страниц из-за наличия пользовательского элемента управления с ошибкой, такой как:

Xamarin.Forms.Xaml.XamlParseException… Тип shared.SharedControl not найдено в xlmns clr-namespace:…

Кто-нибудь сталкивался с этой проблемой, и если да, вы решили ее? Это проблема кода или ошибка Xamarin / Visual Studio Mac?

В идеале я бы не хотел устанавливать XamlCompilationOptions для этих страниц на Skip, но в любом случае я не понимаю, почему это должно влиять на iOS, а не на Android.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Вам необходимо загрузить эту сборку перед ее использованием. На Xaml он не загружается, просто попробуйте достичь и вылетает, если он не загружен. Перед его использованием вам необходимо загрузить сборку, вызвав метод или создав объект MyAssembly.

Должен быть Init метод для сборки, чтобы инициировать вещи. ты должен это назвать.

0 голосов
/ 04 сентября 2018

Во-первых, XamlCompilationOptions.Compile означает компиляцию XAML для класса или проекта при сборке приложения. Когда XamlCompilationOptions.Skip делает то же самое, когда приложение запускается на устройстве.

Кроме того, я предлагаю вам выполнить следующие шаги:

  1. Удалить и заново сгенерировать все общие файлы
  2. Удалить; сборка: xxx из App.xaml
  3. Очистить и построить снова.

Вот аналогичная тема для вас, ссылающаяся на Xamarin.Forms.Xaml.XamlParseException было брошено

PS: есть ссылка о , как обновить PCL до .NET Standard Class Library

...