如何从多个解决方案/项目中删除nuget程序包?

时间:2020-03-27 20:25:40

标签: .net visual-studio nuget nuget-package

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

通过脚本,我可以为每个脚本创建一个分支,并在完成软件包删除后发出拉取请求。这些PR被批准后,构建/部署将以自动化方式进行。因此,唯一手动的部分似乎是该程序包的卸载。

这些是框架应用程序,dotnet remove命令不适用于这些应用程序。 nuget.exe似乎只允许从摘要中删除,而不能从解决方案/项目中删除。我还在寻找,但是还没有找到其他选择。

我宁愿不必在VS中打开这些解决方案中的每个解决方案来删除此程序包。可以在Powershell或C#中轻松编写脚本吗?

1 个答案:

答案 0 :(得分:0)

似乎一种可能的解决方案可能是使用PowerShell,但可以从Visual Studio的Package Manager Console中进行。

我正在尝试类似这样的东西:

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