У меня есть приложение 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 из разных сборок?