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

本地从源码编译Xamarin Forms 5.0.*生成NuGet包失败如何解决

Xamarin.Forms 5.0 自定义版本打包报错解决方案

错误根因

你遇到的NullReferenceException报错源于NuGet 5.9.x版本与XF 5.0打包脚本的兼容性问题,以及自定义修改后nuspec模板与实际编译产物不匹配的问题,对应解决方法如下:


1. 降级NuGet CLI到兼容版本

XF 5.0官方构建流程适配的NuGet版本为5.8.x,5.9.x版本存在TFM(目标框架标识)识别空引用bug。你可以在build.cake文件开头添加如下配置,强制构建脚本使用指定版本的NuGet工具:

#tool nuget:?package=NuGet.CommandLine&version=5.8.1

2. 修正删除UWP项目后的打包配置

你移除UWP相关项目后,没有同步修改打包用的nuspec模板,导致打包时会查找不存在的UWP平台编译产物:

  • 打开nuspec/Xamarin.Forms.nuspec模板文件,删除所有UWP相关的<file>节点和<referenceGroup>分组节点
  • 执行.\build.ps1 -Target Clean清理之前的编译缓存

3. 先验证全平台编译成功再打包

不要直接执行打包命令,先单独执行编译任务确认所有保留的平台项目都编译成功:

.\build.ps1 -Target Build

如果有编译失败的项目,优先解决编译问题,确保所有目标平台的DLL都正常生成后再执行打包命令。

4. VS构建Android报错修复

截图中的Android资源编译错误是因为本地Android SDK版本不符合要求:

  • 打开Visual Studio Installer,在「单个组件」页签下安装 Android 11.0 (API 30) SDK 和 Android 构建工具 30.0.3
  • 右键Xamarin.Forms.Android项目,在属性页将「目标框架版本」设置为Android 11.0 (API 30)

内容的提问来源于stack exchange,提问作者Dmytro Bondarenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 19:27:09