安装Microsoft.Intune.MAM.Xamarin.iOS后报MSB3073错误如何解决?
错误根因
报错中出现的setlocal、%errorlevel%是Windows批处理专属语法,你使用的14.3.5版本Microsoft.Intune.MAM.Xamarin.iOS包的.targets脚本存在兼容性缺陷,错误地将Windows命令放到Mac iOS构建环境执行,Mac的shell无法识别相关语法,最终返回255错误码导致构建失败。
排查解决步骤
- 优先升级NuGet包:将Microsoft.Intune.MAM.Xamarin.iOS包升级到14.4及以上正式版本,微软已在后续版本修复了该跨平台构建脚本的兼容问题,升级后直接重新编译即可解决绝大多数同类型报错。
- 手动修正.targets脚本(适用于无法升级包的场景):找到本地NuGet缓存路径下的
C:\Users\yhadhoud\.nuget\packages\microsoft.intune.mam.xamarin.ios\14.3.5\build\xamarinios10\Microsoft.Intune.MAM.Xamarin.iOS.targets文件,删除Exec节点中包含setlocal、endlocal的行,将返回值引用%errorlevel%替换为Mac shell兼容的$?,保存后重新编译。 - 检查Mac构建主机权限:确认Windows VS连接的Mac构建主机当前账号对临时目录有完整读写执行权限,无安全策略、权限管控拦截
chmod命令执行。 - 验证Entitlements配置:检查Entitlements.plist中的Keychain访问组、Intune相关权限配置,确保bundle id与权限前缀匹配,无拼写错误、配置项缺失。
- 清理重建项目:完成上述操作后,清空项目的bin、obj缓存目录,断开并重新连接Mac构建主机,再执行编译操作。
内容的提问来源于stack exchange,提问作者Yanal Abo Hadhod
相关产品推荐
相关产品推荐

