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

Azure CI/CD构建管道失败:引用旧版Microsoft.Data.SqlClient.SNI包

解决Azure构建管道中Microsoft.Data.SqlClient.SNI包版本冲突问题

问题背景

基于.NET Framework 4.7.1的MVC Web应用Azure构建管道执行失败,特性分支已将Microsoft.Data.SqlClient.SNI.1.1.0 NuGet包升级至3.0.2,但提交拉取请求后构建仍报错。解决方案包含多目标框架(.NET Framework 4.7.1 + .NET Core 8.0)的服务层项目,因1.1.0版本与.NET Core 8.0不兼容才升级到3.0.2,具体错误信息如下:

##[error]Test\Test.csproj(2480,5): Error :
    This project references NuGet package(s) that are missing on this computer.
     Use NuGet Package Restore to download them.  
     For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. 
     The missing file is ..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets.

解决建议

  • 清理项目文件中的硬编码旧版本引用:打开报错的Test.csproj文件,搜索是否存在对Microsoft.Data.SqlClient.SNI.1.1.0的硬编码路径引用(比如错误里提到的.targets文件路径),将这些引用替换为3.0.2版本的对应路径,或改用NuGet自动引用方式,避免直接写带版本号的固定路径。
  • 强制清理并重新还原NuGet包:在Azure构建管道中添加步骤,先执行dotnet clean清理本地旧包缓存,再执行dotnet restore或nuget restore拉取最新的3.0.2版本包。如果使用经典管道,确保NuGet还原步骤指向解决方案文件,并启用强制还原选项。
  • 检查多目标框架的包引用配置:针对同时面向.NET Framework 4.7.1和.NET Core 8.0的项目,确认PackageReference节点配置正确,避免某一目标框架下仍引用旧版本包。可使用Condition属性为不同框架指定对应包版本,或统一使用兼容双框架的3.0.2版本。
  • 验证Git提交内容:确认特性分支中所有相关项目文件(包括.csproj和packages.config<如果存在>)都已正确更新至3.0.2版本,无旧版本引用遗漏提交。
  • 清理Azure管道缓存:若构建管道启用了NuGet缓存,可能缓存了旧版本包,需清理现有缓存或调整缓存规则,确保新版本包能被正确拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:24:56