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

.NET Core安装Negotiate包后遇System.DirectoryServices.Protocols加载失败

.NET Core依赖版本冲突问题解答

为什么会出现版本不匹配的情况?

  • 依赖链绑定限制:你安装的Microsoft.AspNetCore.Authentication.Negotiate --version 6.0.14是.NET 6生态的包,它的依赖清单中明确指定需要System.DirectoryServices.Protocols 6.0.0.1版本。NuGet依赖解析机制会严格遵循这个指定版本,不会自动用你后来安装的7.0.0版本替代——因为跨大版本(6.x到7.x)的.NET类库可能存在API变更、行为差异,强制替换会引发未知问题。
  • 高版本包不兼容低版本依赖链:你安装的7.0.0版本System.DirectoryServices系列包属于.NET 7生态,和.NET 6版本的Negotiate包不在同一依赖体系中,无法被6.0.14版本的Negotiate包识别和调用。

解决方法

  1. 安装对应版本的依赖包
    卸载7.0.0版本的相关包,安装与Negotiate 6.0.14兼容的.NET 6版本包(推荐6.0.25,为.NET 6最新稳定补丁版本):
    dotnet remove package System.DirectoryServices
    dotnet remove package System.DirectoryServices.AccountManagement
    dotnet add package System.DirectoryServices --version 6.0.25
    dotnet add package System.DirectoryServices.AccountManagement --version 6.0.25
    
  2. 清理项目缓存并重建
    执行以下命令清除残留的缓存文件,确保依赖正确加载:
    dotnet clean
    dotnet restore
    dotnet build
    
  3. 对齐项目目标框架与包版本
    检查你的.csproj文件,确认项目目标框架是否与包版本匹配:
    • 如果目标框架是net6.0:保持上述6.x版本的包即可。
    • 如果目标框架是net7.0:建议将Negotiate包升级到7.x版本,避免跨版本依赖:
      dotnet add package Microsoft.AspNetCore.Authentication.Negotiate --version 7.0.13
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:12:54