平台和框架兼容性 - .NET SDK
在此页面上
目标平台
下表显示了可在目标平台上结合使用 SDK 的.NET版本:
目标平台 | 支持的版本 |
---|---|
Debian 8 or later RHEL 7.1 or later Ubuntu 16.04 or later | .NET Core 2.0 或更高版本(.NET 框架 5.0 或更高版本) |
Windows 8.1 或更高版本 | .NET Core 2.0 or later (.NET 5.0 Framework or later) .NET Framework 4.6.1 or later MAUI requires Windows 11 and Windows 10 version 1809 or higher, using
Windows UI Library (WinUI) 3. |
通用 Windows 平台 (UWP) | .NET Standard 2.0 或更高版本(秋季创意者更新) |
macOS | .NET Core 2.0 or later (.NET 5.0 Framework or later) Xamarin.Mac for macOS 10.11 or later. MAUI requires macOS 10.15 or later, using Mac Catalyst. |
iOS 版 | Xamarin.iOS for iOS 9 or later. MAUI requires iOS 11 or later. |
Android | Xamarin.Android for Android 4.1 (API level 16) or later. MAUI requires Android 5.0 (API level 21) or later. |
tvOS | Xamarin and Unity for tvOS 9.0 or later. For more information on developing for tvOS, see Build for tvOS. |
注意
与 SDK 对象模型的兼容性
.NET SDK v 10.18.0及更高版本中的源生成器模型有以下要求:
.NET Core 2.0 或更高版本(.NET 框架 5.0 或更高版本)
C# 9.0或更高版本
如果目标是旧版本的.NET Framework,则对象模型必须派生自旧源生成器所需的 RealmObject 、 EmbeddedObject或AsymmetricObject基类。
下面演示了如何调整当前的对象模型以与旧版.NET框架兼容:
public partial class Person : IRealmObject // Current model public class Person : RealmObject // Adjusted to inherit from RealmObject
有关详细信息,请参阅对象模型 - .NET SDK。
开发环境
您可以使用以下开发环境通过.NET SDK构建应用:
适用于 Windows 的 Visual Studio 2015 更新 2 或更高版本
Visual Studio for Mac 7.0 或更高版本
Unity2020.3.12 f1 (LTS)
注意
.NET SDK可能与其他版本的Unity兼容,但 2020.3.12f1 (LTS)
是 SDK团队用于测试和开发的版本。 我们建议使用此版本,以确保您的项目可与.NET SDK配合使用,并且安装步骤与将Realm与Unity集成文档步骤相匹配,因为 Unity 的用户界面经常在版本之间发生变化。
Android 部署
由于某些指令设立限制,SDK 不支持将 Android 应用部署到armeabi
ABI。 由于默认模板通常针对“调试”和“发布”模式具有不同的 ABI 设置,因此您的应用可能会在“发布”模式引发System.TypeInitializationException
异常,但在“调试”模式运行时不会引发异常。
为避免这种情况,请验证“调试”和“发布”模式的 ABI 设置。 要检查和更改设置,请按照 Visual Studio CPU 架构 页面。
除非您有充分的理由避免链接其他 ABI,否则我们建议检查除armeabi
之外的所有设置。
限制
为了平衡灵活性和性能,SDK 施加了一些限制。 如果超出以下限制,SDK 会在应用初始化期间引发异常:
类名的长度不能超过 57 个字节。
属性名称的长度不能超过 63 个字节。
此外,对于 iOS 应用程序,所有打开的 Realm 文件的总大小不能大于 iOS 中允许应用程序映射的内存量。 这因设备而异,并且取决于设备上内存空间的碎片化程度。 如果您需要存储的数据超过允许的数量,您可以将数据分割为多个 Realm 文件,仅在需要时打开 Realm,并在不再需要时将其关闭。
有关详细信息,请参阅 开放式 Radar17119975 。