Xamarin Live Player构建报错:加载程序集失败(System.AggregateException)
首先来看你遇到的错误:
尝试使用Xamarin Live Player构建应用时遭遇错误:Failed to load assembly from stream: System.AggregateException: 发生一个或多个错误。 ---> System.AggregateException: 发生一个或多个错误。 ---> System.IO.DirectoryNotFoundException: 找不到路径的一部分 "/data/data/com.xamarin.live/files/External/.nuget/packages/sqlitepclraw.provider.e_sqlite3.android/1.1.5/lib/MonoAndroid/SQLitePCLRaw.provider.e_sqlite3.dll"。在 System.IO.FileStream..cto...
这个问题本质是Xamarin Live Player在设备端同步项目依赖时,找不到SQLitePCLRaw对应的Android provider DLL文件,大概率是NuGet包安装不完整、同步异常或者版本兼容问题,试试下面这些解决方案:
清理并重新还原NuGet包
这是最常见的修复方式,先清理项目缓存再重新安装依赖:- 在Visual Studio中右键解决方案,选择「清理解决方案」;
- 右键解决方案,选择「管理NuGet程序包」,找到
SQLitePCLRaw.provider.e_sqlite3.android包,先卸载再重新安装; - 或者直接在「程序包管理器控制台」执行命令:
Update-Package -reinstall SQLitePCLRaw.provider.e_sqlite3.android
重新安装能修复NuGet包本地缓存损坏、文件缺失的问题,确保Live Player能同步到完整的依赖文件。
手动触发Live Player文件同步
Live Player依赖局域网同步项目文件到设备,偶尔会出现同步不完整的情况:- 确认你的设备和电脑在同一WiFi网络下,Live Player已经成功连接;
- 在Visual Studio顶部菜单栏点击「Live Player」,选择「Sync Files」手动同步一次;
- 如果同步后还是报错,断开设备连接,重新配对Live Player试试。
更新Live Player和Xamarin组件
旧版本的Live Player可能对某些NuGet包的兼容性不足:- 在你的Android设备应用商店里,把Xamarin Live Player更新到最新版本;
- 在Visual Studio中点击「工具」→「获取工具和功能」,检查并更新Xamarin相关的组件到最新版。
检查项目目标Android版本兼容性
确认你的Android项目目标框架和SQLitePCLRaw.provider.e_sqlite3.android包的支持版本匹配:- 右键Android项目→「属性」→「应用程序」,查看「目标框架」;
- 打开NuGet包详情页面,确认1.1.5版本的包支持的MonoAndroid版本(比如该版本支持MonoAndroid 6.0及以上);
- 如果版本不匹配,要么调整项目的目标框架,要么升级
SQLitePCLRaw.provider.e_sqlite3.android到兼容当前项目的版本。
临时手动推送DLL到设备(不推荐长期使用)
前面的方法都无效的话,可以手动把缺失的DLL推送到设备指定路径:- 找到本地NuGet包的DLL路径,一般是
C:\Users\<你的用户名>\.nuget\packages\sqlitepclraw.provider.e_sqlite3.android\1.1.5\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll; - 用adb命令推送文件:
adb push "本地DLL的完整路径" /data/data/com.xamarin.live/files/External/.nuget/packages/sqlitepclraw.provider.e_sqlite3.android/1.1.5/lib/MonoAndroid/
注意:这只是临时方案,下次Live Player同步可能会覆盖这个文件,优先用前面的方法彻底解决问题。
- 找到本地NuGet包的DLL路径,一般是
内容的提问来源于stack exchange,提问作者Aqib Ibrahim

