Reputation: 45761
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?
Upvotes: 200
Views: 94599
Reputation: 1182
There is also the option to force a reinstall. With certain problems, this helped me.
Update-Package Microsoft.Owin -Reinstall
Upvotes: 0
Reputation: 10442
In Visual Studio 2015 (as of Nuget v3.1.2) the syntax is now:
Install-Package ThePackage -ProjectName YourProjectName
Note: -ProjectName vs -Project
Upvotes: 17
Reputation: 346
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
Upvotes: 7
Reputation: 17014
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.
Upvotes: 9
Reputation: 38764
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.
Upvotes: 329
Reputation: 58991
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
Upvotes: 146
Reputation: 45761
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.
Upvotes: 84