Как-то мне понадобилось откатиться на предыдущую версию одного nuget пакета. Сделать это не так просто: сначала надо удалить пакет, а потом установить специфичную версию. К тому же, если необходимо сделать это не во всех проектах солюшена, то придётся запоминать имена проектов.
Вот небольшой снипет, автоматизирующий задачу.
Замените имя пакета и версию и вставьте его в Package Manager Console.
Так и не понял как разбить длинные команды на несколько строк. Почему-то консоль в студии не понимает многострочных команд и сивола `. Ваши советы пришлись бы кстати :)
Вот небольшой снипет, автоматизирующий задачу.
Замените имя пакета и версию и вставьте его в Package Manager Console.
$packageName = Newtonsoft.Json;
$version = 4.0.5
$projects = Get-Project -all
$projectsWithPackage = new-object System.Collections.ArrayList;
ForEach ($proj in $projects) { Write-Host $project.ProjectName; $projWithPackage = Get-Package -Filter $packageName -ProjectName $proj.ProjectName; if($projWithPackage.Length -gt 0) { $projectsWithPackage.Add($proj.ProjectName) } }
ForEach ($proj in $projectsWithPackage) { Uninstall-Package $packageName -ProjectName $proj -Force}
ForEach ($proj in $projectsWithPackage) { Install-Package $packageName -Version $version -ProjectName $proj }
Так и не понял как разбить длинные команды на несколько строк. Почему-то консоль в студии не понимает многострочных команд и сивола `. Ваши советы пришлись бы кстати :)