You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:11:14