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

升级至Visual Studio 17.5.3后Xamarin Forms iOS打包失败求助

解决Visual Studio 17.5.3中Xamarin Forms iOS归档时Microsoft.Bcl兼容性问题

近期升级Visual Studio至17.5.3版本后,执行Xamarin Forms iOS归档操作时出现以下报错:

包'Microsoft.Bcl 1.1.6'使用'.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8'而非项目目标框架'.NETStandard,Version=v2.1'进行还原。此包可能与您的项目不完全兼容。

该问题仅在17.5.3版本中出现,此前版本无异常,以下是可行的解决建议:

  • 更新Microsoft.Bcl包至兼容版本
    旧版Microsoft.Bcl 1.1.6对.NET Standard 2.1的支持不完善,直接在NuGet包管理器中找到Microsoft.Bcl,将其更新到支持.NET Standard 2.1的最新稳定版本(如2.0.0及以上版本),更新后重新尝试归档操作。

  • 在项目文件中强制指定包的目标框架
    若暂时无法更新包,可手动编辑项目的.csproj文件,为Microsoft.Bcl添加目标框架约束,确保它针对.NET Standard 2.1还原:

    <PackageReference Include="Microsoft.Bcl" Version="1.1.6">
      <TargetFrameworks>netstandard2.1</TargetFrameworks>
    </PackageReference>
    

    保存文件后重新还原NuGet包。

  • 清理并重新还原NuGet依赖

    1. 执行“生成 -> 清理解决方案”清理现有编译文件;
    2. 删除项目目录下的obj、bin文件夹以及解决方案根目录的packages文件夹;
    3. 右键解决方案选择“还原NuGet包”,待依赖还原完成后重新尝试归档。
  • 排查间接依赖的引用来源
    可能是其他依赖包间接引入了旧版Microsoft.Bcl,通过NuGet包管理器的“依赖项”视图,查看哪个第三方包依赖了Microsoft.Bcl 1.1.6,尝试将该第三方包更新至最新版本,或通过PackageReference的ExcludeAssets属性排除旧版Microsoft.Bcl的引用。

  • 临时回退Visual Studio版本
    若上述方法均无法解决问题,且项目需紧急完成归档,可暂时回退到之前能正常工作的Visual Studio版本(如17.5.2),同时关注微软官方的更新补丁,等待兼容性问题修复。

内容的提问来源于stack exchange,提问作者Naga Mallesh Maddali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:37:55