Xamarin.Forms项目陷入DEP3321与NU1201错误循环求助
解决Xamarin.Forms项目中Windows Runtime版本冲突的循环错误
我明白你现在卡在两个错误来回跳的循环里有多头疼,咱们先把这两个错误的根源理清楚,再一步步解决:
错误本质分析
- 第一个错误(DEP3321):你的部署目标(Windows机器或模拟器)运行的是10.0.14393版本的Windows Universal Runtime,而项目要求的最低版本是10.0.16299,所以部署被阻止。
- 第二个错误(NU1201):当你把项目的
TargetMinVersionPlatform改成10.0.14393后,项目依赖的.NETStandard 1.6和uap10.0.14393不兼容——因为.NETStandard 1.6对应的UAP最低支持版本是10.0.15063,二者不匹配导致了这个兼容性错误。
具体解决方案
方案1:升级Windows系统到10.0.16299或更高版本
这是最省心的办法:
- 直接把你的Windows机器(或模拟器)升级到要求的10.0.16299版本以上,这样就不需要修改项目的任何版本设置,DEP3321会自动消失,也不会触发NU1201错误。
方案2:调整.NET Standard版本适配低版本UAP
如果暂时没法升级系统,那就让项目的.NET Standard版本和UAP 10.0.14393兼容:
- 右键你的Xamarin.Forms共享项目 → 属性 → 应用程序 → 把目标框架改成
.NET Standard 1.4(这是支持UAP 10.0.14393的最高.NET Standard版本)。 - 打开UAP项目的属性 → 应用程序:
- 把最低版本设置为10.0.14393(和你的系统版本一致)。
- 目标版本可以设为10.0.16299(只要你的Visual Studio安装了对应SDK),这样既满足系统部署要求,也不会触发兼容性错误。
- 确保你的Visual Studio安装了10.0.14393和10.0.16299的UAP SDK,没有的话可以在Visual Studio安装器里补充安装。
方案3:切换到Windows Phone 8.1项目(限旧需求)
如果你的目标是传统Windows Phone而非UWP,可以考虑创建Windows Phone 8.1的项目而非UAP项目,这样就不会受UWP版本限制。不过要注意,Xamarin.Forms对Windows Phone 8.1的官方支持已经停止,仅适合维护旧项目的场景。
额外注意事项
- 如果使用模拟器部署,要选择和你设置的
TargetMinVersion一致版本的模拟器,比如10.0.14393的模拟器。 - 做完版本调整后,建议清理项目缓存(右键项目 → 清理,然后重建),避免缓存导致的问题。
内容的提问来源于stack exchange,提问作者Dina Bogdan
相关产品推荐
相关产品推荐

