如何在Visual Studio Code中添加程序集引用?

60

在使用C#进行第一个项目时,我遇到了两次类似的问题。当尝试添加using System.Data;using System.Timers;时,会出现以下错误:

类型或命名空间名称“x”在命名空间“System”中不存在(是否缺少程序集引用?)。

我尝试创建一个新项目并运行restore以查看是否不小心移除了一些依赖项,但是在生成新项目后仍然收到相同的错误。我尝试研究过这个问题,并看到一些答案提到了“解决方案资源管理器”,但就我所知,在Visual Studio Code 1.8中似乎没有这样的功能。

有谁能指点我如何使它们工作,也许是通过手动添加到依赖项中?


你确定你找的不是有关Visual Studio(而不是VS Code)的帮助或建议吗?解决方案资源管理器是Visual Studio中的一个特性,但我不确定它是否存在于VSC中。 - Damien_The_Unbeliever
@Damien_The_Unbeliever,听起来很有道理,我之前并没有很清楚它们的区别。我会再次搜索并关注VSC方面的内容。 - jamessct
@Damien_The_Unbeliever 好的,看起来你关于解决方案资源管理器的缺失是正确的。似乎我需要手动添加依赖文件中缺失的引用,但是我不太清楚应该在哪里或如何知道要添加什么版本号。 - jamessct
https://dev59.com/X1kR5IYBdhLWcg3w6RED - live-love
6个回答

87

.csproj 项目文件

以下主题适用于 .csproj 项目文件和:.NET Core 1.x SDK、.NET Core 2.x SDK

向项目文件添加包引用。

dotnet add package

示例

Newtonsoft.Json NuGet 包添加到项目中:

dotnet add package Newtonsoft.Json

.json 项目文件

以下主题适用于 .json 项目文件:

本指南将指引您如何在 Visual Studio Code 中添加任何程序集引用。在此示例中,我们将会向 .NET Core C# 控制台应用程序中添加程序集引用 System.Data.SqlClient

注意事项

  • 第6步,请输入您想要的程序集引用。
  • 有些程序集引用仅适用于 .NET Framework,并会导致错误。
  • OleDb 在 .NET Core 中不可用,可能是因为它不跨平台。

先决条件

  1. 安装 Visual Studio Code
  2. 安装 .NET Core SDK(预览版2)
  3. 从 Visual Studio Code 扩展市场安装NuGet 包管理器
  4. 从 Visual Studio Code 扩展市场安装C# 扩展程序

步骤

  1. 启动 Visual Studio Code
  2. 打开您的项目文件夹
  3. F1Ctrl+Shift+P菜单栏 > 视图 > 命令面板 启动 VS Code 命令面板。

enter image description here

  1. 命令面板框中,键入nu

enter image description here

  1. 点击NuGet软件包管理器: 添加软件包

  2. 输入软件包筛选条件,例如 system.data(在此输入您的程序集引用)

enter image description here

  1. 按Enter键
  2. 点击System.Data.SqlClient

enter image description here

以下提示框弹出

enter image description here

  1. 点击恢复

enter image description here

以下输出面板弹出。

enter image description here

在“资源管理器”面板中,单击“project.json”以打开它。

enter image description here

编辑器面板中,它显示添加到project.json文件中的程序集引用。

enter image description here

  1. Program.cs中使用的程序集引用为System.Data.SqlClient

enter image description here


3
Nuget没有给出建议,我们需要安装其他东西吗? - Saurabh
2
@Saurabh 是的,https://marketplace.visualstudio.com/items?itemName=jmrog.vscode-nuget-package-manager - Samie Bencherif
33
没有Nuget的"Install/Reference"命令,只有"Add Package"! - andymcgregor
System.Data.OleDb怎么样?命令面板中没有相关建议。 - user6283344
2
@EmonHaque:OleDb在.NET Core中不可用,可能是因为它不跨平台。 - ikolim

9
使用命令dotnet add package向您的项目添加软件包引用。例如:dotnet add package Newtonsoft.Json,这将向*.csproj项目文件中添加软件包引用:
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />

现在,您可以运行命令dotnet restore来恢复项目的依赖项。

参考: dotnet add package


2
将dll文件拖到bin文件夹中即可。请参考以下图片:将dll文件拖到bin文件夹中

2
ikolim的答案并不可行,正如其他人所指出的那样,没有Nuget: Install/Reference命令,只有Add Package! 因此,在下面链接中的答案解决了我的问题。需要手动编辑Myproject.csproj文件。 这个帖子的副本

2

我将文件存储在一个名为"dlls"的项目文件夹中,并像这样在我的.csproj文件中添加了参考文件:

 <ItemGroup>
     <Reference Include="Microsoft.Office.Client.Policy.Portable">
      <HintPath>dlls\Microsoft.Office.Client.Policy.Portable.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Office.Client.TranslationServices.Portable">    
 <HintPath>dlls\Microsoft.Office.Client.TranslationServices.Portable.dll</HintPath>
    </Reference>
</ItemGroup>

1
这在2022年的VS Code 1.67上运行良好。拥有第三方refs文件夹比将文件放入Debug文件夹要好得多,后者应该只是输出(而不是检入源代码控制)。请注意使用“Reference”而不是“PackageReference”,后者仅适用于nuget refs。最佳答案! - rexall

-2

如果已存在.dll引用, 右键单击项目 添加现有项>选择.dll路径 在将dll添加到项目后,右键单击.dll

构建操作=内容,复制到输出目录=始终/或者如果更新


3
VS Code不是Visual Studio。 - BRogers

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