在VS2012中添加NuGet包作为项目引用的最佳方法?

好。 真的很快的问题,我可能只是很厚。

如果你右键点击一个项目的“引用”文件夹,然后点击“pipe理NuGet包”,然后你可以安装包,它们会被你点击的项目自动引用。 但是,我想在同一个解决scheme中添加相同的参考到其他项目。 如果你重复上一步,但点击另一个项目,唯一的select是卸载软件包(因为它已经安装),添加一个现有的(已经安装的)NuGet包作为项目参考的正确方法是什么? 我是使用正常的对话框添加引用和'浏览'到包文件夹中的DLL? 使用一种方法添加第一个引用,然后是另一个引用? 这看起来不正确。

您可以使用Manage NuGet packages for Solution...通过:

  • 右键点击解决scheme
  • Tools > Library Package Manager > Manage NuGet packages for Solution

然后你可以select在下面的屏幕截图中的哪个项目安装包: 在这里输入图像说明 另外,您可以使用与Manage NuGet packages for Solution...相同的Manage NuGet packages for Solution...将已安装软件包添加到解决scheme中的其他项目。 在这里输入图像说明

这里的其他答案并没有帮助我。 这是我所做的,我不知道有任何其他的方式来做到这一点。 我正在使用VS 2013。

  • 我在软件包pipe理器控制台中安装了软件包,例如PM> Install-Package Newtonsoft.Json
  • 在解决scheme资源pipe理器中,右键单击引用,select添加引用
  • 单击“浏览”,然后导航到解决scheme文件夹下的packages目录中的dll。

这为项目的引用添加了一个相对path,所以它应该与其他人从源代码控制中获取代码到不同的目录中。

我遇到过同样的问题。 kristianp发布的解决scheme已经按照预期工作,但是在处理大量的软件包时可能有点麻烦。 这个解决scheme对我来说只是编辑记事本中的myProjectName.csproj文件,而只是复制粘贴来自另一个项目的引用,如下所示:

 ... <ItemGroup> <Reference Include="Microsoft.AspNet.SignalR.Core"> <HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.1.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath> </Reference> <Reference Include="Microsoft.AspNet.SignalR.SystemWeb"> <HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.1.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath> </Reference> ... 

希望这有助于某人。 它节省了我很多点击:)