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

升级Xamarin.Forms至.NET Standard 2.0时iOS编译报错求助

解决Xamarin.iOS引用.NET Standard 2.0类库的编译错误

这个错误我之前帮同事排查过,核心原因很明确:你的Xamarin.iOS项目目标框架版本太低,旧版本的Xamarin.iOS(比如提示的Version 1.0)不支持引用.NET Standard 2.0类库。结合你说的Android端正常,说明.NET Standard类库本身配置没问题,问题出在iOS项目的目标框架设置上,给你几个具体的解决步骤:

1. 更新Xamarin.iOS项目的目标框架版本

  • 右键你的Xamarin.iOS项目,选择「属性」;
  • 在弹出的属性窗口里切换到「应用程序」选项卡;
  • 找到「目标框架」下拉框,选择Xamarin.iOS 10.0及以上版本(.NET Standard 2.0对Xamarin平台的最低要求是iOS 10.0、Android 7.0);
  • 注意:如果下拉框里没有高版本选项,先打开Visual Studio的「工具」->「选项」->「Xamarin」->「iOS设置」,检查是否有可用的Xamarin.iOS更新,先把Xamarin组件更到兼容.NET Standard 2.0的版本(Visual Studio 2017社区版需要确保更新到最新的15.9.x及以上版本,才能支持更高版本的Xamarin.iOS)。

2. 手动检查iOS项目的.csproj配置

有时候属性窗口的修改可能没同步到项目文件里,建议直接打开iOS项目的.csproj文件,确认目标框架配置正确:

  • 找到<PropertyGroup>节点下的<TargetFramework>项,确保它是类似Xamarin.iOS13.0(或更高)的格式,而不是错误的xamarin.ios Version 1.0;
  • 正确的配置示例:
    <PropertyGroup>
      <TargetFramework>Xamarin.iOS13.0</TargetFramework>
      <MinimumOSVersion>10.0</MinimumOSVersion>
      <!-- 其他项目配置 -->
    </PropertyGroup>
    

3. 彻底清理缓存并重新生成

虽然你已经清理了obj和bin文件夹,但建议再做一次彻底清理:

  • 右键解决方案,选择「清理解决方案」;
  • 关闭Visual Studio,删除解决方案根目录下的.vs隐藏文件夹(这个文件夹里存着VS的缓存文件,有时候会导致奇怪的编译问题);
  • 重新打开Visual Studio,右键解决方案选择「重新生成解决方案」。

4. 验证NuGet包的兼容性

确保你的Xamarin.Forms和其他相关NuGet包版本是支持.NET Standard 2.0的:

  • Xamarin.Forms 3.0及以上版本完全支持.NET Standard 2.0,如果你已经用了最新版,这一步没问题;
  • 检查iOS项目和.NET Standard类库中的NuGet包版本是否一致,避免出现版本冲突导致的隐性错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:09:46