如何从多个 solutions/projects 中删除一个 nuget 包?

How do I remove a nuget package from multiple solutions/projects?

我们有数百个 Visual Studio 不同年龄的解决方案,我们有一个内部编写的 NuGet 包,其中许多人使用。我们要删除此 NuGet 包并将其从这些解决方案及其项目中删除(在 csproj 或 packages.config 中不再引用)。

通过脚本,我可以为每个分支创建一个分支,并在包删除完成后执行拉取请求。随着这些 PR 获得批准,builds/deploy 将以自动方式发生。所以,唯一的手动部分似乎是这个包卸载。

这些是框架应用程序,dotnet remove 命令不适用于这些应用程序。 nuget.exe 似乎只允许从提要中删除,而不是 solutions/projects。我仍在寻找,但还没有找到其他选择。

我宁愿不必在 VS 中打开这些解决方案中的每一个来删除这个包。这可以很容易地用 powershell 或 c# 编写脚本吗?

看起来一种可能的解决方案是使用 PowerShell,但在 Visual Studio.

内的程序包管理器控制台中

我正在试验这样的东西:

$projects = Get-ChildItem 'C:\Repos\' -File -Include *.csproj -Recurse; foreach($project in $projects) {Uninstall-Package -Id PackageThatMustDie -project $project.FullName}