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?
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 allowsInstall-Package Castle.Windsor
to install the package into the second project.There's 3 approaches :).
In NuGet 1.1 (The latest release) we've improved powershell pipelining so you can do this:
That will install "SomePackage" into all of your projects. You can use wildcards to narrow down which projects:
That will use wildcard semantics (in this case, find all projects that start with mvc).
That will install SomePackage into SomeProject and nothing else.
There is also the option to force a reinstall. With certain problems, this helped me.
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:
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 clickManage
. This will allow you to add a specific installed NuGet Package to whichever other projects you want.In Visual Studio 2015 (as of Nuget v3.1.2) the syntax is now:
Note: -ProjectName vs -Project