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:
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
Write-Host "Processing $path..."
$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.