61

行。非常快速的问题,我可能只是很厚。

如果您右键单击项目的“引用”文件夹,然后单击“管理 NuGet 包”,则可以安装包,您单击的项目会自动引用它们。但后来我想在同一个解决方案中添加对其他项目的相同引用。如果您重复前面但单击另一个项目唯一的选择是卸载包(因为它已经安装),添加现有(已安装)NuGet 包作为项目参考的正确方法是什么?我是否要使用普通对话框和“浏览”将引用添加到包文件夹中的 dll 中?使用一种方法添加第一个引用,然后使用另一种方法添加后续引用?这似乎不对。

4

4 回答 4

86

您可以通过以下方式使用Manage NuGet packages for Solution...

  • 右键单击解决方案
  • Tools > Library Package Manager > Manage NuGet packages for Solution

然后您可以选择在哪些项目中安装包,如下面的屏幕截图所示: 在此处输入图像描述 此外,您可以使用相同的Manage NuGet packages for Solution.... 在此处输入图像描述

于 2013-02-21T12:11:22.167 回答
20

这里的另一个答案对我没有帮助。这就是我所做的,我不知道还有其他方法可以做到这一点。我正在使用 VS 2013。

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

这为项目的引用添加了一个相对路径,因此它应该与其他人一起将代码从源代码管理中获取到不同的目录中。

于 2014-09-04T00:25:36.947 回答
2

我遇到过同样的问题。kristianp发布的解决方案按预期工作,但是在处理大量包时可能有点麻烦。对我有用的解决方案只是在记事本中编辑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>

    ...

希望这可以帮助某人。它为我节省了很多点击:)

于 2016-07-13T21:21:44.030 回答
0

现在我使用包管理器控制台(查看->其他 Windows->包管理器控制台)。

您可能只需要以下两个命令:

install-package <package-name> [-version <version-number>] [-project <project-name]

update-package <package-name> [-reinstall] [-version <version-number>] [-project <project-name>]

在哪里

  • 方括号 [ ] 中的部分是可选的。
  • 'install-package' 将安装到指定的项目,或者如果未指定在命令窗口顶部的“默认项目”下拉列表中选择的项目。
  • 除非指定项目,否则“更新包”将对每个项目应用更改。
  • '-reinstall' 表示卸载然后以相同的版本号再次安装包。

起初我认为这些命令的行为有点奇怪,但根据经验,我发现它们像这样最有用。虽然我个人会完全放弃“默认项目”下拉菜单。

于 2018-06-21T09:03:44.683 回答