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

Mac端Visual Studio打包Xamarin.iOS应用出现Microsoft.CSharp版本冲突错误

解决方案

这是Microsoft.CSharp程序集版本冲突导致的报错:Xamarin.iOS 框架自带2.0.5.0版本的Microsoft.CSharp,而你的共享.NET Standard项目依赖4.0.0.0版本,升级Xamarin.Forms后MSBuild的引用检查严格度提升,原本的警告升级为阻断归档的错误,可按以下步骤逐一排查解决:

  • 移除额外安装的Microsoft.CSharp NuGet包
    检查共享项目、iOS项目的NuGet引用列表,删除所有手动安装的Microsoft.CSharp包,Xamarin.iOS 运行时已自带该程序集,无需额外引入。
  • 添加程序集绑定重定向
    在iOS项目根目录新建App.config文件(已存在则直接编辑),添加以下配置:
    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.CSharp" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="2.0.5.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  • 清理项目和NuGet缓存
    关闭Visual Studio,删除所有项目(共享项目、iOS项目)下的bin、obj文件夹,打开终端执行以下命令清理NuGet全局缓存:
    dotnet nuget locals all --clear
    
    再删除~/Library/Caches/VisualStudio/路径下对应版本的缓存文件夹,重启Visual Studio后还原所有NuGet包。
  • 执行干净生成后再归档
    选中iOS项目为启动项目,右键选择「清理」,清理完成后执行「生成」,确认生成无报错后再执行发布归档操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:01