升级至最新Uno Platform时Nuget Pack报错NU1012咨询
解决NU1012错误:.NET 6移动TFM缺失平台版本
这个NU1012错误的核心原因是:.NET 6的移动平台目标框架(TFM,比如net6.0-android、net6.0-ios)必须指定具体的平台版本号,而你当前nuspec里的target路径只写了框架名,没有带版本。
解决步骤如下:
修改nuspec文件的target路径
给net6.0-android和net6.0-ios加上对应平台的版本号,版本号要和你项目编译时使用的SDK版本一致(比如Uno Platform通常要求对应.NET 6的Android 31、iOS 15.x)。修改后的files节点示例:<files> <file src="bin\Release\net6.0-android31.0\*.*" target="lib\net6.0-android31.0" /> <file src="bin\Release\net6.0-ios15.4\*.*" target="lib\net6.0-ios15.4" /> </files>确认本地安装对应版本的移动SDK/Workload
- 如果用Visual Studio:打开Visual Studio安装器,检查“移动开发”工作负载下是否安装了.NET 6对应的Android SDK(比如Android 12.0/API 31)和iOS SDK(比如iOS 15.x)
- 如果用dotnet CLI:运行
dotnet workload list查看是否有android、ios的.NET 6 workload;如果没有,执行dotnet workload install android ios安装对应版本的workload
验证项目文件的TargetFrameworks配置
打开你的库项目文件(.csproj),确保TargetFrameworks已经指定带版本的TFM,示例:<TargetFrameworks>net6.0-android31.0;net6.0-ios15.4</TargetFrameworks>重新编译并打包
先清理并重新编译项目到Release模式,再执行nuget pack命令即可。
内容的提问来源于stack exchange,提问作者Maximus
相关产品推荐
相关产品推荐

