我继承了一个 Xamarin 项目(不是 Xamarin.Forms),现在它具有三个主要组件。
一个 iOS 项目、一个 Android 项目,最后是一个共享项目(不是 PCL 也不是 .Net Standard 项目)。
尽管有共享项目,应用程序仍会读取每个项目的 Assets 文件夹中包含的 json 文件。该文件是重复的。我觉得这个文件应该位于共享项目
为了澄清,这是结构:
共享项目
没有 Assets
iOS
资源/test.json
安卓
Assets /test.json
我相信 test.json
文件应该作为共享项目中的一个文件存在。我的第一步是进行此操作,并将文件更改为适用于 iOS 项目的 Build Action=Content
。然而Android项目似乎没有得到这个文件。我在编译和存档的 .apk 文件中找不到它。
对此我能做些什么,还是我需要接受这个设计缺陷并构建 .Net 标准库或 PCL?如果是这样,您究竟如何为非 Xamarin.Forms 项目制作 .Net Standard 或 PCL。
最佳答案
您的用例是什么?如果您只需要在运行时读取 test.json 并使用 .NET 代码解析它,您可以使用嵌入式资源,详细信息请参见:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/files/
如果您需要将文件放入 iOS reosurces/Android 资源文件夹中,则可以在解决方案中仅保留 test.json 文件一次(在共享项目中或作为解决方案项),并将其添加为 iOS 和 Android 的链接和 Android 项目 - 这是如何在 Visual Studio 中执行此操作的屏幕截图。
您也可以在 Visual Studio for Mac 中执行此操作 - 右键单击解决方案资源管理器中的包含文件夹,选择“添加文件”,您将收到以下提示 - 选择“添加到文件的链接”
关于xamarin - 在 iOS 和 Android 项目之间共享 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45822560/