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

Xamarin iOS发布模式无法构建应用:引用解析错误

解决Xamarin iOS发布模式下System.Security.Cryptography.DSACng引用错误

针对你遇到的发布模式下无法解析System.Void System.Security.Cryptography.DSACng::.ctor(System.Security.Cryptography.CngKey)引用的问题,试试以下几种解决方案:

  • 清理项目文件与缓存
    手动删除iOS项目下的bin和obj目录,然后在Visual Studio中执行清理解决方案,再重新生成项目。这类缓存残留经常会导致奇怪的引用问题。

  • 排查传递依赖
    即使已移除MailKit,其他NuGet包可能间接引入了System.Security.Cryptography.Cng。在终端执行命令:

    dotnet list package --include-transitive
    

    查看所有传递依赖,找到关联的包后尝试更新到最新稳定版,或者替换为无该依赖的替代包。

  • 调整链接器行为
    打开iOS项目属性的iOS Build选项卡,将发布模式下的Linker Behavior从Link All改为Link Framework SDKs Only,甚至临时改为Don't Link测试是否解决问题。链接器可能误裁剪了加密相关的必要代码。

  • 手动添加程序集引用
    如果项目中缺失System.Security.Cryptography.Cng引用,可手动添加:

    1. 右键iOS项目→添加→引用
    2. 在程序集列表中找到System.Security.Cryptography.Cng并勾选
      或者直接编辑项目.csproj文件,添加:
    <ItemGroup>
      <Reference Include="System.Security.Cryptography.Cng" />
    </ItemGroup>
    
  • 更新目标框架与Xamarin.iOS版本
    确认iOS项目的目标框架为最新稳定版,同时将Xamarin.iOS更新到官方最新版本,旧版本的加密API兼容性可能存在问题。

  • 临时禁用AOT编译
    在iOS Build选项卡的发布模式设置中,取消勾选Enable Ahead-of-Time (AOT) compilation,测试是否是AOT编译导致的引用解析失败。如果有效,可尝试调整AOT参数或等待相关依赖包更新修复该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:01:12