在 Visual Studio Code 中安装 Nuget 包

319

在Visual Studio Code中如何安装Nuget包?我知道在Visual Studio中我们可以通过Nuget Package Manager控制台来操作,但是在VS Code中应该怎么做呢?


你尝试过这个扩展吗:https://marketplace.visualstudio.com/items?itemName=ksubedi.net-core-project-manager 或者你可以从他们的网站下载NuGet并在控制台中使用它。 - JNK
我更喜欢控制台,因为这个扩展没有好的评价。 - Gyan Parkash
我通常使用nuget.org进行搜索,并使用PackageReference(位于其他安装选项旁边)来完成。这种方法非常好用,而且你还可以获得一个良好的UI界面来管理nuget本身。 - mslot
12个回答

331

从命令行或VS Code编辑器中的终端窗口:

dotnet add <PROJECT> package <PACKAGE_NAME> [options]

例如:

dotnet add MyApp package MySql.Data -Version 8.0.31

请查看Scott Hanselman的这篇文章


2
请注意,此代码仅适用于基于新的csproj的.Net Core SDK 1.0,而不适用于基于旧的project.json的预览版本。 - svick
3
抱歉,它不支持搜索或自动完成。也就是说,您必须知道确切的软件包名称拼写。 - Andrew Savinykh
8
您可以前往nuget.org,像在Visual Studio中一样搜索软件包,然后使用命令行安装您想要的那个软件包。 - MikeBeaton
备注:(1)我必须使用--version-v(而不是-Version); (2)我必须包括.csproj文件扩展名。 完整示例,对我有效:dotnet add MyApp.csproj package MySql.Data --version 8.0.31 - srk

114

编辑: 从下面的评论中:

2019年6月22日:“此扩展现已从市场中撤下。您可以选择卸载它。”2¢. – ruffin Jun 22 '19 at 13:23

上面提供的链接指向“.Net Core Project Manager(Nuget)”-请尝试:marketplace.visualstudio.com/... – samis Oct 3 '19 at 16:14


您可以使用NuGet Package Manager扩展。

安装后,要添加软件包,请按Ctrl + Shift + P,然后键入>nuget并按Enter:

enter image description here

输入软件包名称的一部分作为搜索字符串:

enter image description here

选择软件包:

enter image description here

最后,选择软件包版本(您可能需要最新的软件包版本):

enter image description here


6
这个扩展似乎不支持新的工作区功能。 - Chris Alexander
1
这个扩展似乎重新上架了,我刚刚安装了它,对我来说运行良好。 - Null Reference
5
2019年6月22日:“此扩展现已从市场中下架。您可以选择卸载它。” 2¢。 - ruffin
提供的链接指向“ .Net Core 项目管理器(Nuget)” - 请尝试:https://marketplace.visualstudio.com/items?itemName=jmrog.vscode-nuget-package-manager - samus

42

您可以使用"vscode-nuget-package-manager"轻松完成此操作。

前往marketplace安装它,然后:

  1. 按下Ctrl+PCtrl+Shift+P(并跳过2)
  2. 键入">"
  3. 然后选择"Nuget Package Manager:Add Package"
  4. 输入软件包名称,例如:Dapper
  5. 选择软件包名称和版本
  6. 完成。

37

Nuget Gallery 提供了类似于完整版 Visual Studio 的 GUI。请参见下文。

enter image description here

如何使用:

  1. 从扩展市场安装Nuget Gallery
  2. 从菜单栏中启动视图>命令面板或⇧⌘P(Windows和Linux上的Ctrl+Shift+P)。键入Nuget: Open Gallery
  3. 上面显示了GUI。您可以像在常规Visual Studio中一样进行过滤。
  4. 确保选择了.csproj文件复选框,从下拉菜单中选择版本,然后单击安装按钮。

更新

正如评论中所述,早期版本存在一个问题,即当csproj文件中的软件包缺少版本号时,.csproj复选框不可见。

<PackageReference Include="Microsoft.AspNetCore.App" />

这个问题已经在较新的扩展版本中修复,所以如果您使用的是存在此问题的旧版本,请将其更新到最新版本。


啊,这很有趣。在当前版本中没有.csproj文件选项。也许这就是我的问题所在。https://github.com/pcislo/vscode-nuget-gallery/issues/15 - woter324
嗨@woter324,复选框未显示的问题被确定为.csproj中某些包没有版本号。请参见问题评论。我已更新我的答案以包括该信息。 - Moses Machua
谢谢!这正是我需要的,以便安装Microsoft.Windows.Compatibility包!这个Nuget Gallery实际上可以与.NET Core 3.1.2一起使用!所以现在我可以使用OleDbConnection打开到MS Access数据库的连接,同时在Visual Studio Code中使用.NET Core进行其他操作!很酷! - John Foll
我已经测试了最新版本,不再存在缺少版本号的问题。 - Moses Machua
如果您在一个解决方案中有多个项目,想要为特定的项目安装NuGet包,那么该怎么办呢?是否会有多个csproj复选框? - Florent
@Florent 如果您有多个项目,将会有几个 csproj 复选框。 - Moses Machua

29

打开扩展菜单 (Ctrl+Shift+X),然后搜索“NuGet 包管理器”。


奇怪,这个管理器找不到 Microsoft.AspNetCore.Server.Kestrel。以下解决方案可行。 - Aleksey Kontsevich
1
自从迁移到.csproj文件格式后,它不再起作用了。 - Per Lundberg
当我搜索时,我找不到那个扩展名。 - Davos

16

NuGet包管理器图形界面扩展是一款GUI工具,可让您轻松更新/删除/安装.NET Core/.Net 5项目中来自Nuget服务器的软件包。

> 安装新软件包:

  1. 在VSCode中打开项目工作区
  2. 打开命令面板(Ctrl+Shift+P)
  3. 选择 > Nuget Package Manager GUI
  4. 点击安装新软件包

输入图像描述信息

要更新/删除软件包,请单击更新/删除软件包

输入图像描述信息


2
那真是太美了。 - Celal Ergün

16

.csproj文件的示例

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="7.0.7-m61" />
  </ItemGroup>

只需从 NuGet 获取包名称和版本号,然后添加到 .csproj 中,保存即可。您将被提示运行还原以导入新的包。


12
我相信这个方法有效,但是需要手动编辑XML似乎有些可惜。 - Davos
1
没错,但是VS Code是免费的(而且真正意义上只是一个编辑器),所以我不会抱怨。如果我必须在VS中完成这个任务,那就不同了。 - Chris Cavell
1
说得好。那么,您是在没有安装任何版本的Visual Studio的情况下完全在VSCode中编辑C#项目吗?还是在Visual Studio中创建项目(带有sln + csproj文件),然后只使用VSCode作为编辑器?我猜如果您只使用dotnet和VSCode,那么您甚至为什么需要这些项目文件呢? - Davos
1
不,我实际上使用的是Visual Studio 2010和2015。虽然我更喜欢2010。我的所有真正的编码也都存储在Git存储库中。VS Code更多地是在我的Ubuntu系统上玩耍。 - Chris Cavell
这是一个问题,MS在csproj文件中使用XML而不是像YAML这样用户友好的东西。 - A.R.

10

如果您正在使用 .net core,您可以使用 dotnet CLI,例如:

dotnet add package <package name>

8
  1. 安装NuGet包管理器
  2. 在Windows上按Ctrl+Shift+P,或者在Mac上按Command+Shift+P
  3. 搜索“NuGet包管理器:添加包”
  4. 输入包名称,例如AutoMapper
  5. 选择包和版本
  6. 如有需要,请还原

5
上面的答案很好,但如果您在同一个文件夹中有多个项目(.csproj),则不足。
首先,您可以轻松地向.csproj文件添加“PackageReference”标记(手动方式,使用nuget包管理器或使用dotnet add package命令)。
但是,然后您需要手动运行“restore”命令,以便告诉它您要恢复哪个项目(如果我只是单击弹出的还原按钮,则什么也不会发生)。 您可以通过运行以下命令来执行此操作:
dotnet restore Project-File-Name.csproj

这将安装该程序包


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接