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

添加未引用项目引用后触发System.MissingMethodException问题排查

排查.NET 6类库引用后出现的MissingMethodException问题

是,这几乎可以肯定是项目B引入的NuGet包引发的版本冲突问题。

System.MissingMethodException的核心原因是:编译时代码依赖的程序集版本,和运行时实际加载的程序集版本不一致——项目B大概率引入了与项目A不兼容的NuGet包版本,导致运行时加载的程序集中缺少目标方法BlobStorageHelper.BlobStorageFolder.MoveAsync(...)。

以下是具体排查步骤:

  • 检查项目A与项目B的NuGet依赖版本
    重点核对两类包的版本:

    • BlobStorageHelper(自定义类库或第三方包)
    • Microsoft.Azure.Storage.Blob(Azure存储相关依赖)
      查看两个项目中这些包的版本号是否一致,项目B可能引入了更低版本的包,导致全局依赖被拉低。
  • 查看解决方案的NuGet依赖树
    使用.NET CLI命令分别导出两个项目的依赖列表,对比差异:

    # 查看项目A的依赖
    dotnet list ./ProjectA/ProjectA.csproj package
    # 查看项目B的依赖
    dotnet list ./ProjectB/ProjectB.csproj package
    

    或者在Visual Studio的Package Manager Console中执行:

    Get-Package -ProjectName ProjectA
    Get-Package -ProjectName ProjectB
    

    找出版本不一致的关键依赖包。

  • 验证隔离场景

    1. 临时移除项目B的引用,确认项目A恢复正常运行;
    2. 逐步将项目B的NuGet包逐个添加到项目A中,每次添加后运行测试,定位到引发冲突的具体包;
    3. 找到冲突包后,统一两个项目的包版本,优先使用项目A原本依赖的版本(需确认该版本兼容项目B)。
  • 检查自定义类库版本(如果BlobStorageHelper是内部类库)
    如果BlobStorageHelper是你们团队维护的类库,检查项目B是否引用了该类库的旧版本——旧版本可能未实现MoveAsync方法,导致运行时加载错误版本的程序集。

  • 检查中央包管理配置(如果启用)
    如果解决方案使用了.NET 6的中央包版本管理(CPM),查看根目录下的Directory.Packages.props文件,确认是否存在项目B修改后的版本配置,导致依赖版本被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:15:34