调用.Repl()查看视图树时遇System.Runtime程序集找不到异常求助
解决Xamarin.UITest调用.Repl()时缺失System.Runtime 6.0.0.0程序集的问题
针对调用.Repl()方法时出现的Could not find file or assembly "System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"异常,可尝试以下解决方案:
匹配测试项目的目标框架版本
Xamarin.UITest 4.x系列依赖.NET 6及以上版本,若测试项目仍使用.NET Framework或低版本.NET Core,会导致依赖缺失。右键测试项目→属性→应用→目标框架,切换至.NET 6或更高版本。添加程序集绑定重定向
根据项目类型配置绑定重定向,让系统自动适配可用的System.Runtime版本:- 若为.NET Framework项目,在
app.config中添加:<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> - 若为.NET 6+项目,在
runtimeconfig.template.json中添加:{ "configProperties": { "assemblyBinding": { "dependentAssembly": [ { "assemblyIdentity": { "name": "System.Runtime", "publicKeyToken": "b03f5f7f11d50a3a", "culture": "neutral" }, "bindingRedirect": { "oldVersion": "0.0.0.0-6.0.0.0", "newVersion": "6.0.0.0" } } ] } } }
- 若为.NET Framework项目,在
清理重建项目
删除测试项目的bin和obj文件夹,执行Visual Studio的「清理解决方案」→「重建解决方案」操作,确保依赖包被正确重新引用。对齐NuGet包版本兼容性
打开NuGet包管理器,检查相关包的依赖冲突:- 尝试将NUnit更新至3.14.0+、NUnit3TestAdapter更新至4.6.0+,保持与Microsoft.NET.Test.Sdk 17.6.3的版本兼容;
- 确认Xamarin.UITest 4.1.4与其他包的依赖无版本冲突,必要时可尝试降级至Xamarin.UITest 4.0.x系列测试。
手动安装System.Runtime包
在测试项目中直接安装System.Runtime6.0.0版本的NuGet包,确保该程序集被正确引入项目。
内容的提问来源于stack exchange,提问作者Qaz
相关产品推荐
相关产品推荐

