升级VS2019后Xamarin Android报System.Dynamic引用无法解析错误如何解决
解决方案
- 排查NuGet传递依赖引入的Microsoft.CSharp
右键Android项目打开「管理NuGet包」界面,切换到已安装标签,勾选显示所有依赖项,逐层检查所有已安装包是否隐含依赖Microsoft.CSharp,尤其是MVVMCross组件、旧版Newtonsoft.Json等用到动态特性的第三方库。找到对应依赖包后,要么升级到适配Xamarin.Android的最新稳定版,要么编辑项目.csproj文件,在对应PackageReference节点添加排除规则:<PackageReference Include="你的第三方包名" Version="版本号"> <ExcludeAssets>Compile</ExcludeAssets> </PackageReference> - 全量清理构建缓存
关闭VS,删除解决方案根目录下所有bin、obj文件夹,删除当前用户目录下.nuget\packages文件夹内的microsoft.csharp、system.dynamic.runtime相关缓存目录,重启VS后重新生成项目。 - 调整项目引用配置
打开Android项目属性页,确认目标Android版本、最小支持版本和升级前配置保持一致;检查项目引用列表,删除残留的Microsoft.CSharp、System.Dynamic程序集引用;如果你的共享代码库是.NET Standard类库,检查该类库是否引用了Microsoft.CSharp,没有用到dynamic特性的话直接删除该引用。 - 兜底适配方案
如果以上操作都无法解决,直接在Android项目的.csproj文件中手动添加框架引用:<Reference Include="System.Dynamic" /> <Reference Include="Microsoft.CSharp" />
内容的提问来源于stack exchange,提问作者wainy
相关产品推荐
相关产品推荐

