VS2017 15.7.2中Xamarin.Forms with Prism项目编译失败求助
解决VS2017 15.7.2中Prism MVVM Xamarin.Forms项目的编译错误
我之前也碰到过类似的Prism模板在VS2017升级后的兼容问题,结合你的情况,给你几个亲测有效的解决思路:
1. 更新Prism相关NuGet包到兼容版本
旧版本的Prism可能和VS2017 15.7+的Android工具链不匹配,尤其是你已经把Xamarin.Forms升级到了3.0.0.482510:
- 右键解决方案,选择管理解决方案的NuGet包
- 找到所有Prism开头的包(比如
Prism.Forms、Prism.Unity等),更新到与Xamarin.Forms 3.0兼容的最新稳定版本(建议选Prism 7.0.x系列,完美适配Xamarin.Forms 3.x) - 更新完成后重新还原NuGet包
2. 手动修复Android项目的.csproj配置
旧Prism模板生成的项目文件可能存在框架引用的遗留问题,直接编辑.csproj文件更彻底:
- 右键Android项目,选择卸载项目,然后右键点击已卸载的项目,选择编辑AppPrivateCard.Android.csproj
- 查找并确保以下节点配置正确:
<TargetFrameworkVersion>v8.1</TargetFrameworkVersion> <AndroidTargetSdkVersion>27</AndroidTargetSdkVersion> - 同时检查是否存在过时的
packages.config引用,如果有的话,建议迁移到PackageReference格式:右键Android项目 -> 管理NuGet包 -> 右上角齿轮图标 -> 包管理格式 -> 选择PackageReference并完成迁移
3. 清理NuGet缓存并重新构建
缓存的旧NuGet包可能导致版本冲突,按以下步骤操作:
- 打开VS的工具 -> 选项 -> NuGet包管理器 -> 常规,点击清除所有NuGet缓存
- 右键解决方案,选择还原NuGet包
- 点击生成 -> 清理解决方案,然后再重新生成整个解决方案
4. 同步Android项目的构建版本设置
确保目标版本和编译使用的版本完全一致:
- 右键Android项目,选择属性 -> 切换到Android选项标签
- 在高级设置里,把编译使用的Android版本也设置为Android 8.1 (API 27),和你设置的目标Android版本保持一致
最后一招:迁移到新的Prism项目
如果以上方法都无效,建议直接用VS2017 15.7.2创建一个全新的Prism MVVM Xamarin.Forms项目,然后把旧项目中的页面、ViewModel、资源文件、业务逻辑代码逐步迁移过去。新模板是适配当前VS版本的,能从根源上避免旧模板的配置遗留问题。
内容的提问来源于stack exchange,提问作者Olivertech
相关产品推荐
相关产品推荐

