解决了; 因此,对于基本项目,按以下顺序连续出现三个错误:
System.MissingMethodException: Default constructor not found for type Cirrious.CrossCore.IoC.MvxPropertyInjector
下一个错误是:
Cirrious.CrossCore.Exceptions.MvxException: Failed to construct and initialize ViewModel for type {0} from locator MvxDefaultViewModelLocator - check MvxTrace for more information
这个很难;简单的修复当然是做一个--linkskip=portableLibrary,或者在某个地方创建一个ViewModel的实例(可能在LinkerPleaseInclude.cs中);至少在我的情况下,第二种方法的问题是,我的大多数 VM 没有无参数构造函数,显然在这种情况下使用 IOC 无济于事。
最终错误:
System.ArgumentNullException: missing source event info in MvxWeakEventSubscription
Parameter name: sourceEventInfo
要么使用 --linkskip=System (丑陋),要么将以下内容添加到 LinkerPleaseInclude.cs
public void Include(INotifyPropertyChanged changed)
{
changed.PropertyChanged += (sender, e) => {
var test = e.PropertyName;
};
}
这足以让我的基本项目使用 LinkAllAssemblies、使用 LLVM 优化器和使用 SGen 收集器来运行。
希望这将帮助任何寻找解决方案的人。