Такие ситуации очень раздражают и очень трудно диагностировать ...
Прежде всего, я бы предложил использовать linker.config
. Вы получите гораздо больший контроль над тем, что не следует связывать с ним - это тоже очень легко настроить.
Если у вас есть файл linker.config
, я бы предложил попробовать настройку, которую я использую для одного из моих приложений:
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="MvvmCross">
<type fullname="MvvmCross.IoC.MvxPropertyInjector"/>
<namespace fullname="MvvmCross.ViewModels" />
</assembly>
<assembly fullname="MvvmCross.Forms">
<type fullname="MvvmCross.Forms.Platforms.Android.Views.MvxFormsAppCompatActivity"/>
</assembly>
<assembly fullname="MvvmCross.Droid.Support.V7.AppCompat">
<type fullname="MvxAppCompatActivity"/>
</assembly>
</linker>
В моем файле linker.config
указано больше сборок, но я не уверен, насколько они актуальны в вашем случае. Пожалуйста, попробуйте добавить вышеперечисленное в ваш файл linker.config
и проверьте, не возникают ли у вас проблемы.
Если ваше приложение продолжает умирать, то я склонен буквально перечислять все ваши сборки (ссылки на проекты) в файле компоновщика, например:
<assembly fullname="<Assembly_Name>">
<type fullname="*"/>
</assembly>
<assembly fullname="<Assembly_2_Name>">
<type fullname="*"/>
</assembly>
Я делаю это, потому что даже если вы думаете, что это MvvmCross
, что вызывает проблемы, есть вероятность, что это может быть совершенно другая библиотека / сборка. Этот список, из всех сборок, в основном будет указывать компоновщику сохранять каждые Type
в этих сборках (ничего не снимать!). Приложение должно нормально работать с ними. Как только это произойдет, вы начнете удалять сборки из списка. Вы можете сделать это один за другим или разбить его пополам и удалить первую или вторую половину - в основном начните устранять сборки. Когда вы сделаете это, вы можете захотеть удалить bin
и obj
, с каждым устранением всех сборок - просто чтобы быть уверенным, что dll повторно генерируются.