【发布时间】:2019-09-03 23:30:36
【问题描述】:
我有一个 Xamarin iOS 应用程序。 iOS 应用程序引用了另一个项目,即 .NET Standard 项目。这个项目构建了一些资源(汇编输出可以忽略不计)。这些资源是 .NET Standard 中的内容。 iOS 应用程序引用了这个 .NET Standard 库。
构建 iOS 应用程序时,.ipa 文件不包含引用程序集的内容。
我尝试了各种方法,例如破解 BundleResource 以包含文件路径,但效果不佳,因为我无法获得新的 <ProjectReference> 格式来为我提供输出内容的文件路径,而只是程序集。
如何将 .NET Standard 程序集中的内容捆绑到我的 iOS 应用程序中?
【问题讨论】:
-
您是否尝试过将它们作为 BundledResources 包含在内?
-
您需要将这些资源包含为“嵌入式资源”,并在运行时通过 GetManifestResourceStream 从程序集中读取它们
-
@Jason 有点棘手,因为它们不能成为原始项目中的 BundleResource,因为它不是 iOS 项目。我已经尝试了一些 MSBuild-fu 将它们转换为 iOS 项目构建中的 BundleResource,但无法使其正常工作。
-
@SushiHangover 我研究了这个解决方案,但我使用的 API 确实需要磁盘上的文件。
-
@Puppy 您需要将这些文件移动到 Xamarin.iOS 项目(基于库或应用程序)并将它们标记为捆绑资源或将它们从嵌入它们的程序集中复制出来(即到 iOS 应用程序缓存目录等,然后将它们用作“普通”文件)。就我个人而言,由于运行时性能因素(持续的内存膨胀等),我避免使用嵌入式资源,并且始终更喜欢在移动应用程序结构中使用本机捆绑功能。
标签: ios xamarin .net-standard