Suppose I have a solution with 3 projects:
Some of the NuGet packages I use will apply to all 3 projects. Some w
In Package Manager Console you can write the following command:
Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package
PACKAGE_NAME -Version VERSION
You can use that command for install or update as well (Update-Package)
Use the console to target multiple projects
Tools > Library Package Manager > Package Manager Console
then use this command
Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME
for example
Get-Project Core,UI | Install-Package FluentDateTime
This sweet deal works for me:
PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
$_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
| ForEach-Object {Install-Package MvvmLight -project $_.Name}
You should use the "Add Library Package Reference" for all your external library on every project in your solution. You'll end up with a packages.config per project.
However, you'll download the package only one time and reuse them locally for all your other projects.
For anybody stumbling across this, now there is the following option :
Right-click your solution > Manage NuGet Packages for Solution...
... Or:
Tools > Library Package Manager > Manage NuGet Packages for Solution...
And if you go to the Installed packages area you can 'Manage' a single package across every project in the solution.
If you want to install a package across multiple solutions I wrote a handy Powershell script for doing it, see here.
You can even filter the Get-Project -All
command and target a sub-set of the project list.