VS Mac开发Xamarin.iOS应用添加Ditto包引用失败报错
报错根因
你碰到的两个报错是独立问题,根因分别是:
- 命令行执行
dotnet add package触发的MSB4019错误:通用.NET 6 SDK的命令行工具链没有集成Visual Studio for Mac专属的Xamarin.iOS构建组件,找不到Xamarin.iOS.CSharp.targets这个Xamarin iOS项目必需的构建目标文件,自然没法解析项目依赖、完成包添加操作。 - 包管理器安装后构建触发的MT0009错误:你安装的1.1.8版本Ditto包存在打包缺陷,构建iOS项目时会错误把Windows平台专属的原生库
dittoffi.dll纳入iOS构建流程,iOS的原生编译工具MTOUCH完全不识别Windows平台的dll文件,直接抛加载失败错误。
修复方法
按以下步骤操作即可解决:
- 后续给Xamarin.iOS项目操作NuGet包时,不要用终端的
dotnet add package命令,全部通过Visual Studio for Mac自带的NuGet包管理器UI操作,从根源避免通用dotnet工具链找不到Xamarin构建组件的问题。 - 先把当前项目里已经安装的1.1.8版本Ditto包完全卸载,手动删除项目根目录下的
bin、obj两个缓存文件夹。 - 重新安装Ditto包时,跳过1.1.8这个存在打包bug的版本,选择1.1.7稳定版,或者后续已经修复平台资源路径问题的更高版本,安装完成后直接重新构建项目即可。
- 如果换版本后依然出现同类程序集加载错误,直接打开本地NuGet缓存路径
~/.nuget/packages/ditto/,删除对应版本目录下的runtimes/win整个文件夹,再返回VS重新构建。
内容的提问来源于stack exchange,提问作者texasRanger
相关产品推荐
相关产品推荐

