Xamarin.Forms: не удается разрешить сборку или файл метаданных Windows «Тип юниверса не может разрешить сборку: MyApp.UI.Base ...» - PullRequest
0 голосов
/ 30 августа 2018

У меня есть приложение Xamarin.Forms. Структура проекта несколько сложнее, чем в обычном решении Xamarin.Forms.

У меня есть проекты для моей платформы:

  • MyApp.Android
  • MyApp.iOS
  • MyApp.UWP

У меня есть проект стандартной библиотеки .net для определений страниц .xaml:

  • MyApp.UI (на это ссылаются проекты, относящиеся к платформе)

У меня есть проект стандартной библиотеки .net для базовых классов страниц .xaml:

  • MyApp.UI.Base (на него ссылается MyApp.UI)

У меня есть класс PageBase в MyApp.UI.Base. Допустим, у меня есть Login.xaml вот так:

<?xml version="1.0" encoding="utf-8" ?>
<base:PageBase xmlns="http://xamarin.com/schemas/2014/forms"
               xmlns:base="clr-namespace:MyApp.UI.Base;assembly=MyApp.UI.Base" ...>
...
</base:PageBase>

Тип в Login.cs также правильный:

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Login : PageBase
{
// ...
}

Когда я компилирую решение, я получаю следующую ошибку:

Не удается разрешить файл метаданных сборки или Windows. Тип юниверса не может разрешить сборку: MyApp.UI.Base, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль. '

Эта ошибка кажется совершенно неправильной, я пробовал другие решения, такие как удаление папки .vs или восстановление пакетов nuget, но ни один из них не работал.

Могу ли я не иметь базовые классы страниц xaml из разных сборок?

1 Ответ

0 голосов
/ 30 августа 2018

Проблема заключалась в том, что проект MyApp.UI.Base не был ссылкой из проекта MyApp.UWP. Добавление ссылки решило проблему. Я полагаю, ошибка была правильной, но не такой точной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...