如何在解决方案中将NuGet包安装到第二个项目中?

时间:2011-02-11 09:57:04

标签: visual-studio-2010 visual-studio nuget

我目前正在开发一个最初包含一个项目(My.First.Project.Name)的解决方案。我通过执行:

安装了Castle Windsor
Install-Package Castle.Windsor

我刚刚在解决方案中添加了另一个项目(My.Second.Project.Name),并希望将Castle Windsor安装到此项目中,但是当我再次运行Install-Package Castle.Windsor时,我收到错误:

  

'Castle.Core 2.5.2'已经安装了   已经安装了'Castle.Windsor 2.5.2'   My.First.Project.Name已经引用了'Castle.Core 2.5.2'   My.First.Project.Name已经引用了'Castle.Windsor 2.5.2'

所以我的问题是:如何说服NuGet软件包管理器将软件包安装到第二个项目中

7 个答案:

答案 0 :(得分:315)

有3种方法:) 在NuGet 1.1(最新版本)中,我们改进了powershell管道,因此您可以这样做:

Get-Project -All | Install-Package SomePackage

这将在所有项目中安装“SomePackage”。您可以使用通配符来缩小项目范围:

Get-Project Mvc* | Install-Package SomePackage

那将使用通配符语义(在这种情况下,查找以mvc开头的所有项目)。

Get-Project SomeProject | Install-Package SomePackage

这会将SomePackage安装到SomeProject中,而不是其他任何内容。

答案 1 :(得分:138)

有两种方法。

正如您已经了解的那样,程序包管理器控制台有一个下拉列表,其中列出了解决方案中的项目。

另一种方法是使用-Project标志。关于它的好处是它为您提供了Intellisense项目名称!例如:

Install-Package SomePackage -Project MvcApplication2

答案 2 :(得分:82)

答案是,令人尴尬的是,盲目地简单。

“程序包管理器控制台”在其工具栏中有一个标题为“默认项目”的下拉列表,将项目更改为My.Second.Project.Name,然后允许Install-Package Castle.Windsor将程序包安装到第二个项目中。 / p>

答案 3 :(得分:13)

在Visual Studio 2015中(从Nuget v3.1.2开始)语法现在是:

Install-Package ThePackage -ProjectName YourProjectName

注意: - 项目名称 vs -Project

答案 4 :(得分:8)

在Visual Studio中,您可以转到Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution。从那里,选择要在项目之间共享的Nuget包,然后单击Manage。这将允许您将特定的已安装NuGet包添加到您想要的任何其他项目。

答案 5 :(得分:6)

如果您只需要将包从现有项目复制到新项目,只需将packages.config文件复制和/或修改为新项目并运行Update-Package -reinstall -Project YourProjectName

答案 6 :(得分:0)

还可以选择强制重新安装。有一些问题,这对我有帮助。

Update-Package Microsoft.Owin -Reinstall