1

关于本文中描述的解决方案需要第三个程序集才能将类型解析转发到正确的程序集。在使用该类型添加这个对Android类库项目的引用时,转发似乎没有完成。该引用需要添加到作为构建过程的终点的 Android 应用程序项目中。

是否存在任何解决方案来添加在需要它的项目中嵌入转发的引用?

我的意思是,如果在我的解决方案架构中我使用:

  • MyApp.Core - PCL
  • MyApp.Core.Droid - Android 类库
  • MyApp.UI.Droid - 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 项目中......

我不确定我的想法很容易通过我介绍它的方式来理解。如果您需要更多解释,请告诉我。

谢谢,

纪尧姆。

4

1 回答 1

1

我不完全确定为什么这个“如果添加到 MyApp.Core.Droid 会失败” - 感觉应该添加这个。但是,我知道 Xamarin 已经对依赖项解析脚本进行了几次调整和更改。


话虽如此,我认为您问题的最佳答案是“不要太担心” - 这只是现在的一个小不便,它将通过 Xamarin 的更新“很快”得到解决。

当前的 PCL 支持是我和其他一些人为了让事情顺利进行而进行的工作。这组“hacks”是缺乏“适当的 PCL”支持的解决方法——它模拟了 Microsoft PCL 构建平台在 WindowsPhone、WPF 等上所做的事情,但它不是一个完美的实现。

Xamarin 现在已承诺提供“适当的 PCL”支持。发生这种情况时,将自动添加这些类型转发依赖项。好消息是,这种支持现在可能只有几天、几周或最多几个月的时间了。

于 2013-04-10T16:55:29.783 回答