如何将NuGet软件包安装到解决scheme的第二个项目中?

我目前正在研究一个最初包含一个项目( My.First.Project.Name )的解决scheme。 我已经安装了Castle Windsor,执行:

 Install-Package Castle.Windsor 

我刚刚添加了另一个项目( My.Second.Project.Name )到解决scheme,并希望将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包pipe理器安装到第二个项目的包

有3种方法:)。
在NuGet 1.1(最新版本)中,我们改进了PowerShellpipe道,所以你可以这样做:

 Get-Project -All | Install-Package SomePackage 

这将安装“SomePackage”到您的所有项目。 您可以使用通配符来缩小哪些项目:

 Get-Project Mvc* | Install-Package SomePackage 

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

 Get-Project SomeProject | Install-Package SomePackage 

这将安装SomePackage到SomeProject,没有别的。

有两种方法。

正如您已经了解到的,软件包pipe理器控制台有一个下拉列表,列出解决scheme中的项目。

另一种方法是使用-Project标志。 好的事情是它给你的Intellisense的项目名称! 例如:

 Install-Package SomePackage -Project MvcApplication2 

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

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

在Visual Studio 2015中(如Nuget v3.1.2)现在的语法是:

 Install-Package ThePackage -ProjectName YourProjectName 

注意: – 项目名称与项目

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

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

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

 Update-Package Microsoft.Owin -Reinstall