获取包含特定NuGet包的解决方案中的所有项目

时间:2015-07-22 10:42:08

标签: powershell nuget

我有一个包含多个项目的解决方案。这些项目包含很多NuGet包,我不得不用新包换掉 - 新包有不同的ID。所以我需要的是一个Package Manager Console脚本来获取包含给定包ID的所有项目。

我在SO上找到了其他脚本,例如Nuget powershell command - find projects with specific package installed - 但是已经添加了说出PackageName的错误。

感激不尽的任何帮助!感谢

1 个答案:

答案 0 :(得分:4)

我查看了你提到的帖子,并使用了剧本。这个版本适合我:

Get-Project -all | foreach-object {get-package -ProjectName $_.Name | `
Add-Member -Force -MemberType NoteProperty -Name ProjectName -Value $_.Name -passthru }  | `
select id, projectname | Where-Object {$_.id -eq "RestSharp"} | `
Format-Table -auto -GroupBy projectname 

我添加了-Force标志作为建议的错误消息,并按包ID添加了过滤。您需要替换包的id以搜索特定包(在我的示例中为RestSharp)。

另外,你可能已经知道但是我花了一些时间才发现所以我还是会提到它:

您可以右键单击解决方案,然后选择“管理解决方案的NuGet包”。然后,您可以单击已安装包的“管理”按钮。它将显示一个带有解决方案树视图的对话框,您可以通过查看左侧的复选框轻松查看已安装该软件包的项目,并轻松地为多个项目安装/卸载该软件包。