You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决.NET MAUI iOS发布时AOT编译器退出代码139的问题?

问题描述

在Visual Studio Code中执行以下命令生成.NET MAUI iOS发布包:

dotnet publish -f net9.0-ios -r ios-arm64

出现以下错误:

error: Failed to AOT compile System.Private.Windows.Core.dll, the AOT compiler exited with code 139.
error: Failed to AOT compile aot-instances.dll, the AOT compiler exited with code 139.

已尝试在项目文件中添加以下属性禁用AOT编译,但问题未解决:

<PropertyGroup>    
    <PublishAOT>false</PublishAOT> 
</PropertyGroup>

解决方法

  • 更新.NET SDK到最新稳定版:错误码139多和AOT编译器的内存问题、版本兼容性bug有关,确保你用的是.NET 9的最新正式版SDK,旧版本可能存在已知的AOT编译异常。
  • 补充禁用AOT相关的所有属性:仅设置PublishAOT可能无法完全关闭AOT流程,在项目文件中添加以下完整配置:
    <PropertyGroup>
        <PublishAOT>false</PublishAOT>
        <EnableAOTAnalyzer>false</EnableAOTAnalyzer>
        <RunAOTCompilation>false</RunAOTCompilation>
    </PropertyGroup>
    
  • 释放内存后重试:AOT编译对内存要求较高,建议关闭其他占用内存的程序(比如浏览器、虚拟机),确保机器至少有16GB以上可用内存后重新执行发布命令。
  • 清理项目缓存:执行以下命令清理旧编译文件,避免缓存干扰:
    dotnet clean
    rm -rf obj bin
    dotnet restore
    
    清理完成后再重新运行发布命令。
  • 排查第三方依赖:检查项目引用的NuGet包,部分旧版第三方包可能和.NET 9 iOS不兼容,尝试暂时移除可疑包后测试编译是否正常。

内容的提问来源于stack exchange,提问作者S. Chang

火山引擎 最新活动