执行dotnet workload update后.NET MAUI项目构建失败
解决.NET MAUI执行
dotnet workload update后MSB4018错误 问题现象
执行dotnet workload update后,项目构建时触发MSB4018错误,核心原因是找不到8.0.2版本的Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64包(该包被workload更新操作移除)。错误日志示例:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/17.2.8043/targets/Xamarin.Shared.Sdk.targets(1214,3): error MSB4018: The "AOTCompile" task failed unexpectedly. [/Users/davidrutter/Projects/simul_bcfo1/aspnet-core/src/Simul_BCFO.Maui/Simul_BCFO.Maui.csproj::TargetFramework=net8.0-ios] /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/17.2.8043/targets/Xamarin.Shared.Sdk.targets(1214,3): error MSB4018: System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (An error occurred trying to start process '/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64/8.0.2/Sdk/../tools/mono-aot-cross' with working directory '/Users/davidrutter/Projects/simul_bcfo1/aspnet-core/src/Simul_BCFO.Maui'. No such file or directory))) (One or more errors occurred. (One or more errors occurred. (An error occurred trying to start process '/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64/8.0.2/Sdk/../tools/mono-aot-cross' with working directory '/Users/davidrutter/Projects/simul_bcfo1/aspnet-core/src/Simul_BCFO.Maui'. No such file or directory))) [/Users/davidrutter/Projects/simul_bcfo1/aspnet-core/src/Simul_BCFO.Maui/Simul_BCFO.Maui.csproj::TargetFramework=net8.0-ios]
解决步骤
检查当前SDK和workload状态
运行以下命令确认已安装组件:dotnet --list-sdks dotnet workload list确认是否存在8.0.x系列SDK,以及iOS workload的完整性。
修复缺失的AOT包或iOS workload
直接安装指定版本的缺失包:dotnet add package Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64 --version 8.0.2或者修复整个iOS workload:
dotnet workload repair ios调整项目依赖的SDK版本
打开项目的.csproj文件:- 若存在
<RuntimeFrameworkVersion>8.0.2</RuntimeFrameworkVersion>或类似硬编码版本节点,将其改为当前已安装的8.0.x稳定版本(例如8.0.5),或者直接移除该节点,让项目自动匹配兼容版本。 - 确保
<TargetFramework>节点为net8.0-ios。
- 若存在
清理缓存并重新构建
执行以下命令重置项目状态:dotnet clean dotnet restore dotnet build极端情况:重新安装.NET SDK和MAUI workload
如果以上步骤无效,彻底卸载现有.NET 8 SDK,下载最新版.NET 8 SDK重新安装,然后重新部署MAUI workload:dotnet workload install maui ios
内容的提问来源于stack exchange,提问作者David Rutter
相关产品推荐
相关产品推荐

