How do I install a NuGet package into the second project in a solution?

Visual Studio-2010Visual StudioNuget

Visual Studio-2010 Problem Overview


I'm currently working on a solution that initially contained one project (My.First.Project.Name). I've installed Castle Windsor by executing:

Install-Package Castle.Windsor

I've just added another project (My.Second.Project.Name) to the solution and want to install Castle Windsor into this project also, but when I run Install-Package Castle.Windsor again, I get the error:

> 'Castle.Core 2.5.2' already installed
> 'Castle.Windsor 2.5.2' already installed
> My.First.Project.Name already has a reference to 'Castle.Core 2.5.2'
> My.First.Project.Name already has a reference to 'Castle.Windsor 2.5.2'

So my question is: How do I persuade the NuGet Package Manager to install the package into the second project?

Visual Studio-2010 Solutions


Solution 1 - Visual Studio-2010

There's 3 approaches :).
In NuGet 1.1 (The latest release) we've improved powershell pipelining so you can do this:

Get-Project -All | Install-Package SomePackage

That will install "SomePackage" into all of your projects. You can use wildcards to narrow down which projects:

Get-Project Mvc* | Install-Package SomePackage

That will use wildcard semantics (in this case, find all projects that start with mvc).

Get-Project SomeProject | Install-Package SomePackage

That will install SomePackage into SomeProject and nothing else.

Solution 2 - Visual Studio-2010

There's two approaches.

As you already learned, the Package Manager Console has a drop down that lists the projects in your solution.

The other approach is to use the -Project flag. Nice thing about that is it gives you Intellisense with the project names! For example:

Install-Package SomePackage -Project MvcApplication2

Solution 3 - Visual Studio-2010

The answer is, embarassingly, blindlingly simple.

The "Package Manager Console" has a drop-down titled "Default Project" in its toolbar, changing the project there to My.Second.Project.Name then allows Install-Package Castle.Windsor to install the package into the second project.

Solution 4 - Visual Studio-2010

In Visual Studio 2015 (as of Nuget v3.1.2) the syntax is now:

Install-Package ThePackage -ProjectName YourProjectName

Note: -ProjectName vs -Project

Solution 5 - Visual Studio-2010

In Visual Studio, you can go to Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution. From there, select the Nuget Package you want to share between projects and click Manage. This will allow you to add a specific installed NuGet Package to whichever other projects you want.

Solution 6 - Visual Studio-2010

If you just need to copy packages from existing project to the new one, just copy and/or modify packages.config file to the new project and run Update-Package -reinstall -Project YourProjectName

Solution 7 - Visual Studio-2010

There is also the option to force a reinstall. With certain problems, this helped me.

Update-Package Microsoft.Owin -Reinstall

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRobView Question on Stackoverflow
Solution 1 - Visual Studio-2010davidfowlView Answer on Stackoverflow
Solution 2 - Visual Studio-2010HaackedView Answer on Stackoverflow
Solution 3 - Visual Studio-2010RobView Answer on Stackoverflow
Solution 4 - Visual Studio-2010Tom StudeeView Answer on Stackoverflow
Solution 5 - Visual Studio-2010SaiyanGirlView Answer on Stackoverflow
Solution 6 - Visual Studio-2010AdvanTiSSView Answer on Stackoverflow
Solution 7 - Visual Studio-2010Damian VogelView Answer on Stackoverflow