Как удалить пакет nuget из нескольких решений / проектов? - PullRequest
0 голосов
/ 27 марта 2020

У нас есть несколько сотен решений Visual Studio разного возраста, и у нас есть внутренний пакет NuGet, который многие из них используют. Мы хотим исключить этот пакет NuGet и удалить его из этих решений и их проектов (больше нет ссылок на csproj или packages.config).

С помощью скрипта я могу создать ветку для каждого и выполнить запрос на извлечение когда удаление пакета сделано. Поскольку эти PR утверждены, сборка / развертывание будет происходить в автоматическом режиме. Таким образом, единственная ручная часть, по-видимому, это удаление пакета.

Это каркасные приложения, и команда do tnet remove на них работать не будет. Nuget.exe только позволяет удалять из каналов, а не решений / проектов. Я все еще ищу, но не нашел других вариантов.

Я бы предпочел не открывать каждое из этих решений в VS, чтобы удалить этот пакет. Это можно написать в powershell или c# легко?

1 Ответ

0 голосов
/ 27 марта 2020

Похоже, что одним из возможных решений может быть использование PowerShell, но из консоли диспетчера пакетов в Visual Studio.

Я экспериментирую с чем-то вроде этого:

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