【发布时间】:2018-01-31 00:44:24
【问题描述】:
我继承了一个 Xamarin 项目(不是 Xamarin.Forms),现在它具有三个主要组件。
一个 iOS 项目、一个 Android 项目,最后是一个共享项目(不是 PCL 也不是 .Net 标准项目)。
尽管有共享项目,但应用程序会读取每个项目的资产文件夹中包含的 json 文件。该文件是重复的。我觉得这个文件应该在共享项目
为了澄清,这是结构:
共享项目
没有资产
iOS
资源/test.json
安卓
资产/test.json
我相信test.json 文件应该作为一个文件存在于共享项目中。我的第一步是进行此操作,并将文件更改为适用于 iOS 项目的Build Action=Content。然而,Android 项目似乎没有得到这个文件。我在编译和归档的 .apk 文件中的任何地方都找不到它。
对此我有什么办法吗,还是我需要接受这个设计缺陷并构建一个 .Net 标准库或 PCL?如果是这样,您究竟如何为非 Xamarin.Forms 项目制作 .Net Standard 或 PCL。
【问题讨论】:
-
不是设计缺陷,只是每个平台处理“内容”的方式。共享“文件”而不包含每个特定于平台的应用程序(或库)的一种方法是将其作为 .Net 程序集资源嵌入到 NetStd/PCL 库中,并将该库包含在每个应用程序中。就我个人而言,我强烈反对在程序集中使用嵌入式资源永久消耗内存,并在每个应用程序项目中创建符号链接到解决方案的中心位置,并使用平台特定的捆绑选项...
-
不不不,我不是说这样的设计缺陷!我的意思是我继承的应用程序的开发方式。
-
hahahahah,好的.. ;-) .... 共享项目确实有它们的好处,包括减少程序集以减慢应用程序启动时间 ;-)
标签: xamarin xamarin.ios xamarin.android