VS2022创建.NET6安卓新项目无法安装MvvmCross 9.0.9的问题
解决MvvmCross 9.0.9安装及项目引用兼容问题
一、修复.NET 6类库与Xamarin Android项目的引用警告
你遇到的"Project '..\XXX.Control.Core\XXX.Control.Core.csproj' targets 'net6.0'. It cannot be referenced by a project that targets 'MonoAndroid,Version=v12.0"警告,本质是Xamarin Android基于Mono runtime,无法直接引用纯标准.NET 6类库。解决步骤:
- 编辑XXX.Core项目文件:
- 右键Core项目 → 选择「编辑项目文件」
- 将原单目标框架配置:
替换为多目标框架配置,同时兼容标准.NET和Xamarin Android:<TargetFramework>net6.0</TargetFramework><TargetFrameworks>net6.0;net6.0-android</TargetFrameworks> - 保存后执行「还原NuGet包」,此时Core项目会生成适配两种环境的版本,Android项目引用时警告会消失。
二、解决MvvmCross 9.0.9 NuGet安装报错
结合示例项目正常、新项目报错的情况,按以下步骤排查修复:
- 清理NuGet缓存:
打开Visual Studio → 工具 → NuGet包管理器 → 包管理器设置 → 常规 → 点击「清除所有NuGet缓存」,避免缓存损坏导致安装失败。 - 安装对应平台的MvvmCross包:
不要直接给Android项目安装顶级MvvmCross包,而是根据项目类型选择:- 若使用Xamarin.Forms:安装
MvvmCross.Forms - 若原生Xamarin Android:安装
MvvmCross.Android
Core项目保持安装MvvmCross即可,确保所有项目的MvvmCross版本统一为9.0.9。
- 若使用Xamarin.Forms:安装
- 确认项目类型与目标版本:
确保Android项目是「Android App (Xamarin)」类型,且最低Android版本不低于API 26(Android 8.0),MvvmCross 9.x对低版本Android兼容性有限。
三、适配MvvmCross 9.x的基础配置
- 按TipCalc示例结构,在Android项目的
MainActivity中继承对应基类:原生项目继承MvxActivity,Forms项目继承MvxFormsAppCompatActivity。 - 在Core项目中创建实现
IMvxApplication接口的应用类,在Android项目的Setup类中指定该类完成MvvmCross初始化。
内容的提问来源于stack exchange,提问作者C4TSt4R
相关产品推荐
相关产品推荐

