Powershell script to re-install Nuget packages
Here's a simple Powershell script I wrote to re-install the Nuget packages that are associated with the current Visual Studio solution.
In case you're wondering why you might want to do this, I often create backups of code that I'm working on. I deliberately exclude the "packages" folder from the backup so I keep the backup file size as small as possible. For what it's worth, I typically exclude the "bin" and "obj" folders too. Anyway, if I need to refer to one of my backups, I wanted a way to easily re-build the packages folder. As the packages.config file IS included in my backups, I can easily re-install the relevant packages via the following Powershell script executed from the Nuget Package Manager Console. For example:
PM> .\Install-Packages.ps1
Where "Install-Packages.ps1" contains the following code and is in the same folder as my Visual Studio solution (.sln) file:
$projects = Get-Project -All
foreach($proj in $projects)
{
$projName = $proj.Name
Write-Host "Processing project $projName..."
$path = Join-Path (Split-Path $proj.FileName) packages.config
if(Test-Path $path)
{
Write-Host "Processing $path..."
$xml = [xml]$packages = Get-Content $path
foreach($package in $packages.packages.package)
{
$id = $package.id
Write-Host "Installing package $id..."
Install-Package -Id $id -Version $package.version
}
}
}
A possible improvement would be to wrap the above code in a Powershell function and include that unction in my Nuget profile as discussed in Setting up a NuGet Powershell Profile.