如何将 NuGet 包安装到第二个项目中?

我目前正在研究最初包含一个项目(My.First.Project.Name)的解决方案。我通过执行以下命令安装了Castle Windsor:

Install-Package Castle.Windsor

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

< p >的城堡。Core 2.5.2'已经安装
的城堡。Windsor 2.5.2' already installed
. My.First.Project.Name已经引用了“Castle”。Core 2.5.2'
My.First.Project.Name已经引用了“Castle”。温莎2.5.2'

.

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

90717 次浏览

令人尴尬的是,答案非常简单。

“包管理器控制台”在其工具栏中有一个名为“默认项目”的下拉菜单,将那里的项目更改为My.Second.Project.Name,然后允许Install-Package Castle.Windsor将包安装到第二个项目中。

有两种方法。

正如您已经了解到的,Package Manager Console有一个下拉列表,列出解决方案中的项目。

另一种方法是使用-Project标志。这样做的好处是,它给了你项目名称的智能感知!例如:

Install-Package SomePackage -Project MvcApplication2

有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中。

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

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

Install-Package ThePackage -ProjectName YourProjectName

注意:-Project的名字 vs -Project

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

还有强制重新安装的选项。在某些问题上,这对我很有帮助。

Update-Package Microsoft.Owin -Reinstall