You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Xamarin.Essentials.Preferences抛NotImplementedInReferenceAssemblyException如何解决

问题原因

出现该报错的核心是Xamarin.Essentials的平台特定实现没有被正确加载,常见触发原因有3个:

  • 解决方案内各项目安装的Xamarin.Essentials NuGet包版本不一致,导致共享项目调用了无实现的可移植版本库
  • 桌面端(WPF)项目没有手动初始化Xamarin.Essentials,不同于Android/iOS平台会自动初始化,WPF等桌面平台需要手动加初始化代码
  • WPF项目的目标框架版本过低,不匹配当前安装的Xamarin.Essentials版本的最低要求
解决步骤
  1. 统一NuGet包版本
    右键解决方案选择「管理解决方案的NuGet包」,切换到「已安装」标签找到Xamarin.Essentials,勾选所有项目后统一升级到最新稳定版,保证所有项目的包版本完全一致。

  2. 新增WPF平台初始化代码
    打开WPF项目的App.xaml.cs文件,在OnStartup方法中添加初始化逻辑:

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    // 新增这一行初始化Xamarin.Essentials
    Xamarin.Essentials.Platform.Init(this, e);
}
  1. 确认WPF项目框架版本
    右键WPF项目打开属性页,确认目标框架版本不低于.NET Framework 4.6.1,若版本过低先升级框架版本再重试。

如果以上操作完成后依然报错,建议直接改用桌面平台原生的配置存储方案:比如直接读写本地JSON文件存储配置,或者使用System.Configuration类库操作App.config配置项,稳定性更高,更适配桌面托盘应用的场景。

内容的提问来源于stack exchange,提问作者Nicolai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:15:04