找出所有项目引用了哪些 NuGet 包、版本号、对应项目路径,并筛选出“同一个包名但版本不同”的情况。
全局扫描所有 .csproj 文件
打开 PowerShell,运行以下脚本(替换为你的代码根目录):
$root = "D:\YourCodeRoot"
$results = Get-ChildItem -Path $root -Recurse -Filter *.csproj | ForEach-Object {
$proj = $_.FullName
[xml]$xml = Get-Content $proj
$xml.Project.ItemGroup.PackageReference | Where-Object { $_ } | ForEach-Object {
[PSCustomObject]@{
Project = $proj
Package = $_.Include
Version = $_.Version
}
}
}
可选 输出所有包引用
$results | Out-GridView # 可视化查看
筛选“同一个包名但版本不同”的包
$duplicates = $results | Group-Object Package | Where-Object { $_.Group.Version | Select-Object -Unique | Measure-Object | ForEach-Object { $_.Count -gt 1 } }
$duplicates | ForEach-Object {
Write-Host "📦 包名: $($_.Name)"
$_.Group | Format-Table Project, Version
}
输出示例:


浙公网安备 33010602011771号