如何永久移除解决方案中未使用的NuGet传递依赖包System.Data.SqlClient
解决System.Data.SqlClient被NuGet自动还原的问题
定位传递依赖来源
先执行命令找出哪个包在引入System.Data.SqlClient:
dotnet list package --include-transitive
查看输出结果,找到包含System.Data.SqlClient的依赖链,定位根源包。
排除传递依赖
方法1:全局排除该包
在项目的.csproj文件中添加以下配置,强制排除System.Data.SqlClient的传递依赖:
<ItemGroup> <PackageReference Include="System.Data.SqlClient" Version="4.8.1"> <ExcludeAssets>all</ExcludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> </ItemGroup>
方法2:精准排除根源包的传递依赖
如果已经找到引入它的具体包(比如PackageX),在该包的PackageReference中添加排除配置:
<PackageReference Include="PackageX" Version="x.x.x"> <ExcludeAssets>System.Data.SqlClient</ExcludeAssets> </PackageReference>
检查额外配置文件
- 查看解决方案根目录下的
Directory.Packages.props文件,检查是否有System.Data.SqlClient的强制引用条目,如有则移除。 - 检查项目的
app.config/web.config,移除关于System.Data.SqlClient的绑定重定向配置。 - 检查全局NuGet配置(路径:
%appdata%\NuGet\NuGet.Config),确认没有强制要求该包的配置。
最后验证
执行以下命令清理并重建:
dotnet clean dotnet restore dotnet build
内容的提问来源于stack exchange,提问作者Dean
相关产品推荐
相关产品推荐

