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

4
我有一个包含多个项目的解决方案。这些项目包含许多NuGet包,我需要用新的包替换它们——新的包具有不同的ID。所以我需要一个Package Manager控制台脚本来获取所有包含特定包ID的项目。
我在SO上找到了其他脚本,例如Nuget powershell command - find projects with specific package installed,但该脚本会出现错误,提示PackageName已经被添加。
非常感谢您的帮助!谢谢
1个回答

8
我查看了你提到的帖子并尝试了一下脚本。这个版本对我来说运行良好:
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过滤的功能。您需要替换要搜索特定包(例如我的示例中的RestSharp)的包ID。

另外,您可能已经知道,但是我花了一些时间才发现,所以我还是提一下吧:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接