关于this post中描述的解决方案,需要第三个程序集将类型解析转发到正确的程序集。 使用类型将此引用添加到Android类库项目时,转发似乎没有完成。需要在Android应用程序项目中添加引用,这是构建过程的终点。
是否存在任何解决方案来添加在需要它的项目中嵌入转发的引用?
我的意思是,如果在我的解决方案架构中我使用:
System.Net命名空间(例如System.Net.Socket.AddressFamily)的使用是在我的ViewModel中完成的,它位于MyApp.Core.Droid中(带有一些插件的MyApp.Core重定向)。在这种情况下,在MyApp.Core.Droid中使用引用更具逻辑性(也是可读性)。但事实上,在打包应用程序时,组装解析完成(据我所知),所以在MyApp.UI.Droid中。因此,在这种情况下,需要将引用添加到MyApp.UI.Droid才能找到(如果添加到MyApp.Core.Droid则失败)。
在这种情况下,解决方案可以正常工作,但是对于加入团队的新程序员来说,理解它是非常明显的,并没有遇到麻烦并理解为什么需要将此参考添加到UI项目...
通过我介绍它的方式,我不确定我的想法是否容易理解。如果您需要更多解释,请告诉我。
谢谢,
纪尧姆。
答案 0 :(得分:1)
我不完全确定为什么这个'如果添加到MyApp.Core.Droid'就会失败' - 感觉应该添加它。但是,我知道Xamarin已经调整了几次并更改了依赖项解析脚本。
话虽如此,我认为你问题的最佳答案是“不要太担心” - 这只是现在的一个小小的不利因素,很快就会被Xamarin的更新解决。
目前的PCL支持是我和其他许多人为了使事情有效而已经开展的工作。这套“黑客”是缺乏“适当的PCL”支持的一种解决方法 - 它模拟了Microsoft PCL构建平台在WindowsPhone,WPF等上所做的工作,但它并不是一个完美的实现。
Xamarin现在已经致力于“适当的PCL”支持。当发生这种情况时,将自动添加这些类型转发依赖项。好消息是,这种支持现在可能只有几天,几周或几个月之后。