2015-07-22 3 views
0

У меня есть решение, которое содержит несколько проектов. Эти проекты содержат много пакетов NuGet, которые мне нужно отключить с новым пакетом - новый пакет имеет другой идентификатор. Так что мне нужен сценарий консоли диспетчера пакетов, чтобы получить все проекты, содержащие данный идентификатор пакета.Получите все проекты в решении, которые содержат определенный пакет NuGet

Я нашел другие скрипты на SO, такие как Nuget powershell command - find projects with specific package installed - но ошибки, упомянутые PackageName, уже добавлены.

Любая помощь с благодарностью получена! Спасибо

ответ

2

Я проверил сообщение, на которое вы ссылались, и играл со сценарием. Эта версия отлично подходит для меня:

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 в качестве сообщения об ошибке и добавил фильтрацию по идентификатору пакета. Вам нужно заменить идентификатор пакета для поиска определенного пакета (RestSharp в моем примере).

Кроме того, вы, вероятно, уже знаете, но мне потребовалось некоторое время, чтобы обнаружить, так что я буду говорить об этом в любом случае:

Вы можете щелкнуть правой кнопкой мыши на решение и выберите «Управление NuGet Пакеты для решения». Затем вы можете нажать кнопку «Управление» для установленного пакета. Он отобразит диалоговое окно с древовидным представлением об этом решении, и вы можете легко увидеть, какие проекты уже установлены, посмотрев флажки слева и легко установите/удалите этот пакет для нескольких проектов.

Смежные вопросы