C# 找不到MvxAndroidApplication

C# 找不到MvxAndroidApplication,c#,xamarin.android,mvvmcross,C#,Xamarin.android,Mvvmcross,我已经成功地学习了MvvmCross的“入门”教程。然而,当我试图在另一台计算机上创建一个新项目时,以该教程为指导,我无法编译它。“核心”项目(netstandard库)很好;但是,当我创建一个新的Xamarin Android项目并定义main应用程序(应该继承自MvxAndroidApplication)时,找不到这两个Mvx名称 当然,我已经非常仔细地遵循了官方教程中的所有说明,这意味着我已经使用NuGet安装了最新(6.0.1)版本的MvvmCross。我已经清理了它,并重建了它。我甚至

我已经成功地学习了MvvmCross的“入门”教程。然而,当我试图在另一台计算机上创建一个新项目时,以该教程为指导,我无法编译它。“核心”项目(netstandard库)很好;但是,当我创建一个新的Xamarin Android项目并定义
main应用程序
(应该继承自
MvxAndroidApplication
)时,找不到这两个Mvx名称

当然,我已经非常仔细地遵循了官方教程中的所有说明,这意味着我已经使用NuGet安装了最新(6.0.1)版本的MvvmCross。我已经清理了它,并重建了它。我甚至研究了包含的MvvmCross程序集,但它完全缺少
MvvmCross.Platforms
名称空间,该名称空间应该包含我上面提到的两个类

很明显,第二台计算机中缺少了某些内容或配置错误。不过我不知道是什么。吸引我注意的一件事是,如果我尝试添加对Mono.Android的引用,它将被列为0.0.0.0版


我如何解决这个问题?我应该检查哪些内容可能遗漏了?

我自己找到了解决方案。它涉及到VisualStudio的一个未记录的需求和一个奇怪的行为(它当然有一个很好的理由,但我不知道它是什么),所以我把它留在这里作为参考

要在Xamarin Android项目中使用MvvmCross,您必须以(Mono)Android 8.1为目标。我不确定这是否会转化为“最新的Android版本”,或者8.1是否有特殊功能。无论如何,MvvmCross的NuGet包包含了
monoandroid81
目标的相关DLL:如果您的项目是为其他东西(甚至是Mono Android 8.0)编译的,那么NuGet将添加
netstandard20
的引用,而该DLL当然不包括
平台
命名空间中的任何内容


在项目设置中更改生成目标后,必须至少卸载并重新加载项目。或者,您可以关闭解决方案,但项目确实是所需的全部要在Visual Studio中获得正确的目标平台,此步骤是必需的。要进行交叉检查,请打开
添加引用
窗口,并浏览“框架”列表:在组装列表的顶部,您将找到一个标签,显示当前目标平台。该标签必须显示“MonoAndroid 8.1”;如果没有,请检查项目设置,然后重新加载项目

这没用,还有人知道如何解决这个问题吗?它发生在MvvmCross从v5.6.3更新到v6.1.2之后。
我将继承从Setup.cs更改为
MvxAppCompatApplication
,并需要为此安装
MvvmCross.Droid.Support.V7.AppCompat
nuget包,但它给了我这个错误。

你能在第二台计算机上构建并运行一个xamarin android项目吗?@Billy是的,我能。我可能已经找到了原因:只要我能测试出来,我会自己发布一个答案。对于目标8.1:droid.csproj->properties->Application->“使用Android版本编译”->选择Android 8.1。如果未列出,请继续并更新visual studio。对于我来说,使用sdk管理器没有更新组合框选项。@Offa,您必须再次使用sdk管理器更新程序,然后重新加载项目。升级Xamarin.Android.Support.Design(从27.x.x.x升级到28.0.0.3)修复了我的问题,我可以使用教程中所述的MVXandroid应用程序。我觉得很奇怪,你在MvvmCross中找不到一个类型,因为我是NuGet的新手,我不知道窗帘后面有什么魔力。