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

未处理的File Not Found Exception:引用A.dll后程序集加载失败求助

解决Azure.Identity依赖导致的程序集加载失败问题

常见原因及修复方案

1. 依赖项未同步到Project B输出目录

Project A引用的Azure.Identity及其关联依赖(比如Azure.Core.dll等)没有被自动复制到Project B的运行目录,导致运行时找不到必要文件。

  • 修复方式:
    • 在Project B中直接安装与Project A版本一致的Azure.Identity NuGet包,NuGet会自动处理依赖的复制和管理。
    • 若手动复制文件,需将Project A输出目录下所有相关.dll(包括Azure.Identity及其依赖)全部复制到Project B的输出目录。

2. 版本冲突问题

Project A使用的Azure.Identity版本与Project B中其他依赖的版本不兼容,导致程序集加载时版本匹配失败。

  • 修复方式:
    • 统一Project A和Project B的Azure.Identity版本,确保两者使用完全相同的版本号。
    • 检查Project B的依赖列表,排查是否有其他库引用了不同版本的Azure.Core(Azure.Identity的核心依赖),通过NuGet包管理器的"管理解决方案NuGet程序包"功能统一所有相关依赖的版本。

3. 缺少程序集绑定重定向配置

当存在版本冲突时,需要通过绑定重定向强制运行时使用正确的程序集版本。

  • 修复方式:
    • 在Project B的App.config或Web.config中添加以下配置(替换当前使用版本为实际版本号):
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Azure.Identity" publicKeyToken="92742159e12e44c8" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-当前使用版本" newVersion="当前使用版本" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-当前使用版本" newVersion="当前使用版本" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      

4. 目标框架不匹配

Project A和Project B的目标.NET框架版本不一致,导致依赖程序集无法兼容加载。

  • 修复方式:
    • 检查两个项目的目标框架设置(比如统一为.NET 6或.NET Framework 4.8),调整为相同的框架版本。

5. 手动导入A.dll时遗漏依赖

直接复制A.dll到Project B但未同步其依赖的Azure.Identity相关程序集,导致运行时缺失必要文件。

  • 修复方式:
    • 避免手动复制.dll文件,改为通过NuGet引用Project A(同一解决方案内),或将Project A打包为NuGet包后在Project B中安装,让NuGet自动处理所有依赖项的引用和复制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:45:24