.NET MAUI iOS构建失败:MessagingRemoteException与ArgumentNullException报错
.NET MAUI iOS构建报错:ArgumentNullException (path2) 解决指南
错误信息
Error (active) MessagingRemoteException: An error occurred on client Build1808316 while executing a reply for topic xvs/build/18.0.8316/execute-task/{AppName}/312865c002fWriteAppManifest ArgumentNullException: Value cannot be null. Parameter name: path2 GolfDart2.0 (net8.0-ios) C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk.net8.0_18.0\18.0.8316\tools\msbuild\iOS\Xamarin.Shared.targets 643
针对问题的解决方案
1. 该特定错误的常见解决方法
核查Manifest文件路径与配置:
确认Platforms\iOS\Info.plist存在且Build Action设置为BundleResource;在.csproj中检查是否有正确的包含声明:<None Include="Platforms\iOS\Info.plist" />同时排查是否有自定义MSBuild属性(如
$(iOSManifestPath))被错误设置为空值。强制清理构建缓存:
即使无法直接操作云端Mac文件,可在构建命令中添加清理参数:dotnet build /t:Clean && dotnet build或在云端构建平台的配置中启用「构建前清理缓存」选项。
排查资源文件路径问题:
检查自定义资源、启动页、字体的路径是否包含特殊字符(空格、非英文字符),或Build Action配置错误。比如确认Info.plist中配置的启动页资源路径是否有效,无空引用。逐步排除第三方依赖影响:
临时移除部分非核心依赖(如Plugin.Maui.Audio、Microsoft.Data.SqlClient),重新构建验证是否解决问题,再逐一恢复依赖定位根源。
2. Xamarin.Shared.targets相关问题与解决方法
已知问题:
.NET 8 iOS SDK 18.0.8316版本中,当项目存在自定义Manifest路径覆盖、多平台配置冲突时,WriteAppManifest任务可能出现空路径参数(path2)的问题。可行解决手段:
- 明确指定Manifest路径:
在.csproj中添加属性,强制指定Manifest文件位置:<PropertyGroup> <iOSManifestPath>Platforms\iOS\Info.plist</iOSManifestPath> </PropertyGroup> - 调整iOS SDK版本:
尝试降级至.NET 8 iOS SDK 17.x稳定版本,或升级至最新的18.x补丁版本,修复该任务的空参数Bug。 - 自定义MSBuild目标覆盖:
在.csproj中添加自定义目标,提前校验并补全Manifest路径:<Target Name="EnsureValidManifestPath" BeforeTargets="WriteAppManifest"> <PropertyGroup> <iOSManifestPath Condition="'$(iOSManifestPath)' == ''">Platforms\iOS\Info.plist</iOSManifestPath> </PropertyGroup> </Target>
- 明确指定Manifest路径:
内容的提问来源于stack exchange,提问作者RISL2023
相关产品推荐
相关产品推荐

