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

Nethereum调用Wallet.GetAccount()出现EntryPointNotFound异常如何解决

Nethereum调用Wallet.GetAccount()触发EntryPointNotFound异常的原因与修复方案

异常产生原因

  • 依赖版本不兼容:这是最高发的触发原因,所有Nethereum.前缀的相关依赖包版本不一致时,会出现调用链路断层。比如你引用的Nethereum.Wallet包是高版本,但依赖的Nethereum.Core、Nethereum.HdWallet是低版本,低版本核心依赖中不存在高版本Wallet包调用的入口方法,就会抛出该异常。
  • 目标框架不匹配:如果你的项目目标框架低于Nethereum包要求的最低支持版本,比如.NET Framework项目低于4.6.1、.NET Core项目低于2.0,也会出现运行时入口点找不到的问题。
  • 编译缓存异常:Nuget还原失败、本地编译缓存残留,会导致实际加载的dll版本和项目配置的版本不一致,运行时无法定位到对应方法入口。
  • 调用方法不匹配:Nethereum 4.0及以上版本对GetAccount()方法做了破坏性更新,旧版本的调用参数、调用路径在新版本中已经被移除,错误的参数类型或者调用路径也会触发该异常。

排查修复步骤

  • 统一Nethereum依赖版本
    打开项目的Nuget包管理器,将所有Nethereum.开头的包版本统一为同一个官方正式稳定版,禁止跨大版本混用不同Nethereum组件。
  • 核对项目目标框架
    确认项目的目标框架符合你使用的Nethereum版本的最低要求,若框架版本过低可升级项目目标框架,或者降级Nethereum到对应框架支持的版本。
  • 清理缓存重新编译
    按以下步骤清理残留缓存:
    1. 在Visual Studio中右键解决方案,选择「清理解决方案」
    2. 手动删除项目根目录下的bin、obj文件夹
    3. 清理本地Nuget缓存后重新还原所有依赖包,再重新编译项目
  • 修正方法调用写法
    不同版本的GetAccount()调用存在差异,根据你使用的版本调整写法:

    3.x及更早版本写法:

    var account = wallet.GetAccount(index); // index为int类型即可
    

    4.x及更高版本写法调整:

    var hdWallet = new HdWallet(mnemonic, passphrase);
    var account = hdWallet.GetAccount((uint)index); // 索引参数必须为uint无符号整数类型
    
    4.0+版本如果传入int类型的索引,会因为重载匹配失败触发入口点找不到异常,强制转换为uint类型即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:15:03