Xamarin.Forms集成Castle Windsor后Android程序集加载失败及疑问
Fixing "Could not load assembly 'System.Runtime.Loader'" Error in Xamarin.Forms Android with Castle Windsor
最近折腾Xamarin.Forms项目的时候碰到个有意思的坑,跟大家分享下解决过程:
我用.NET Standard新建了一个Xamarin.Forms项目,安装好Castle Windsor之后,在Android端启动直接报错:
启动注册期间无法加载程序集'System.Runtime.Loader'
一开始我还以为是依赖版本不兼容或者缺失,排查半天没找到根源,抱着死马当活马医的心态打开了Android项目的属性页面,把链接选项改成了Sdk and User assemblies,结果神奇了——应用居然正常跑起来了!
说真的我一开始还担心改链接选项会因为部分代码被裁剪打包不进去出问题,没想到反而解决了这个加载失败的报错。后来琢磨了下,应该是默认的链接设置(比如Link All Assemblies)过度裁剪了Castle Windsor依赖的System.Runtime.Loader程序集,改成只链接SDK和用户程序集之后,这个必要的依赖被保留了下来,自然就不会报错了。
另外要提一句,我之前的项目用的是传统的Reference引用方式,而新项目用的是PackageReference(原内容未完整表述,此处为合理推测),这可能也是导致问题出现的一个潜在因素。
内容的提问来源于stack exchange,提问作者pikausp
相关产品推荐
相关产品推荐

