参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

项目管理

当你在 Visual Studio Code 中创建 C# 应用程序时,你会从一个项目开始。项目包含所有被编译成可执行文件、库或网站的文件(例如源代码、图像等)。然后,你所有相关的项目都可以存储在一个名为解决方案的容器中。本文将向你展示如何通过解决方案资源管理器视图来维护你所有的项目及其各自的文件。

注意:需要 C# Dev Kit 扩展才能在 VS Code 中使用“解决方案资源管理器”视图。

解决方案资源管理器

新的 C# Dev Kit 扩展在主侧边栏中包含一个新视图,即解决方案资源管理器。此视图提供了你的应用程序、其解决方案及其项目的结构化视图,可轻松实现集中式项目管理。当你打开包含 .NET 解决方案文件或项目文件的工作区时,“解决方案资源管理器”将自动出现。

如果你的工作区中只有一个解决方案文件(.sln 文件),“解决方案资源管理器”将检测到该文件,并在工作区加载后自动加载它。例如,请看下面的动画,它展示了打开一个包含单个解决方案文件的工作区的体验。

Open workspace with 1 solution file

在上面的动画中,工作区是首次加载到 VS Code 中。工作区加载后,“解决方案资源管理器”检测到唯一的 .sln 文件并自动加载它。

当你的工作区中有多个解决方案文件时,系统会提示你选择要加载的特定解决方案文件。当某个解决方案文件被加载到一个工作区后,该扩展会记住最后加载的是哪个解决方案文件,并在该工作区加载到 VS Code 中时自动重新加载该文件。在下面的动画中,你可以看到首次打开一个包含多个解决方案文件的工作区的体验。

Open workspace with multiple solution files

在上面的视频中,工作区加载后,“解决方案资源管理器”检测到该工作区包含多个解决方案文件,然后通过标准的 VS Code 通知提示你选择要加载的解决方案。之后当你再打开同一个工作区时,“解决方案资源管理器”会记住最后加载的是哪个解决方案文件,并自动重新加载它。

当你在“解决方案资源管理器”中加载了一个解决方案并希望关闭它时,你可以使用 Close Solution (关闭解决方案) 命令。当你右键单击“解决方案资源管理器”中的解决方案时,可以在上下文菜单中找到此命令。

Close solution context menu

你也可以在命令面板中调用此命令。你可以使用 ⇧⌘P (Windows, Linux Ctrl+Shift+P) 打开命令面板。如下图所示。

Close solution from the Command Palette

关闭解决方案后,“解决方案资源管理器”将显示一个按钮,以便你以后可以从工作区打开解决方案文件。你也可以使用 .NET: Open Solution (.NET: 打开解决方案) 命令在命令面板中调用该命令。

当你调用 Open Solution (打开解决方案) 命令时,如果工作区中只有一个解决方案文件,它将自动加载该文件。当有多个解决方案文件时,系统会提示你选择要加载的解决方案文件。这与你首次打开一个包含一个或多个解决方案文件的工作区的体验相同。接下来让我们讨论“解决方案资源管理器”中对“解决方案文件夹”的支持。

解决方案文件夹

在“解决方案资源管理器”中,如果解决方案包含“解决方案文件夹”(用于在解决方案中对项目进行分组的虚拟文件夹),它们将被显示出来。在这里,你可以与“解决方案文件夹”的内容进行交互。要添加新的“解决方案文件夹”,你可以右键单击解决方案并选择 New Solution Folder (新建解决方案文件夹) 菜单项。请看下面的短视频。

C# Dev Kit new solution folder

在上面的视频中,创建了一个名为 "tests" 的新解决方案文件夹。创建解决方案文件夹后,你可以使用 Add Existing Project (添加现有项目) 上下文菜单将项目添加到其中。下面的动画展示了此体验。

Add existing project

你还可以使用下图所示的 Add New File (添加新文件) 上下文菜单向“解决方案文件夹”添加新文件。

Add file to solution folder

调用此命令后,系统将提示你在命令面板中选择要使用的文件模板。下图显示了这一点。

Add new file from Command Palette

此列表显示了该扩展当前支持“解决方案文件夹”的文件模板。要创建不使用模板的文件(即创建空白文件),请选择 Custom file (without template) (自定义文件(无模板))。

要移除一个“解决方案文件夹”,你可以使用 Remove (移除) 上下文菜单选项。

Remove Solution Folder

当你从解决方案中移除一个“解决方案文件夹”时,该“解决方案文件夹”及其内容会从解决方案中移除。它包含的文件和/或项目不会从磁盘上删除。既然我们已经讨论了“解决方案文件夹”,接下来让我们看看如何在“解决方案资源管理器”中与项目进行更多交互。

使用项目

在“解决方案资源管理器”中,有许多功能可以让你使用项目。当你首次打开一个解决方案时,你将看到项目和“解决方案文件夹”。你可以展开“解决方案文件夹”或项目以查看其内容。下图显示了展开了几个节点的“解决方案资源管理器”。

Solution Explorer with expanded nodes

在上图中,我们可以看到“解决方案资源管理器”,其中展开了几个“解决方案文件夹”以及 TemplatesWeb 项目。此版本中支持的文件嵌套非常有限,我们将扩展该支持,使其与 Visual Studio IDE 中看到的文件嵌套更加一致。

在这里,你可以通过在“解决方案资源管理器”中双击文件来打开它们。你还可以右键单击“解决方案资源管理器”中的项目以获取可用操作的上下文相关菜单。例如,要向项目添加新文件,请右键单击该项目并选择 Add New File (添加新文件)。当你选择该选项时,系统将提示你选择用于默认内容的文件模板。如果你正在处理针对 .NET 7.0.200 或更高版本的项目,你将获得最佳体验。

你还可以通过像在 VS Code 中通常那样创建文件,并将它们保存在包含项目文件的文件夹下,来将文件添加到项目中。默认情况下,添加到项目文件夹的新文件将自动添加到项目中。

在项目视图中,你还可以看到项目具有的依赖项,包括项目引用包引用。在此版本的 C# Dev Kit 中,你无法修改依赖项。要向项目或包引用添加依赖项,你可以使用 dotnet add 命令行工具。要添加包引用,请参阅 dotnet add package 命令 - .NET CLI;要添加项目引用,请参阅 dotnet add reference 命令 - .NET CLI。要移除引用,请使用 dotnet remove。你可以在如何移除项目引用如何移除包中阅读更多信息。

如果你想查看或编辑项目文件,请在“解决方案资源管理器”中选择项目节点,项目文件将在编辑器中打开。这与你在“解决方案资源管理器”中选择文件的行为相同。

使用“解决方案资源管理器”,你还可以使用上下文菜单执行诸如生成重新生成清理等常见操作。当你在“解决方案资源管理器”中选择解决方案节点或项目节点时,你将看到这些上下文菜单。这将生成/重新生成/清理所选项目及其依赖项。