尝试以扩展 VS Code 中的代理模式!

项目管理

当你在 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 context menu

你也可以在命令面板中调用此命令。你可以通过 ⇧⌘P(在 Windows、Linux 上为 Ctrl+Shift+P打开命令面板。如下图所示。

Close solution from the Command Palette

关闭解决方案后,解决方案资源管理器将显示一个按钮,以便你稍后可以从工作区打开一个解决方案文件。你也可以通过命令面板使用 **.NET: Open Solution** 命令来调用该操作。

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

解决方案文件夹

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

C# Dev Kit new solution folder

在上面的视频中,创建了一个名为“tests”的新解决方案文件夹。创建解决方案文件夹后,你可以通过**添加现有项目**上下文菜单将项目添加到其中。下面的动画展示了这一体验。

Add existing project

你还可以使用下图所示的**添加新文件**上下文菜单向解决方案文件夹添加新文件。

Add file to solution folder

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

Add new file from Command Palette

此列表显示了该扩展目前支持解决方案文件夹的文件模板。要创建一个不使用模板的文件(即创建一个空文件),请选择**自定义文件(无模板)**。

要移除解决方案文件夹,你可以使用**移除**上下文菜单选项。

Remove Solution Folder

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

使用项目

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

Solution Explorer with expanded nodes

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

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

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

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

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

使用解决方案资源管理器,你还可以执行**生成**、**重新生成**和**清理**等常用操作,这些操作都通过上下文菜单进行。当你在解决方案资源管理器中选择了解决方案节点或项目节点时,你会看到这些上下文菜单。这将生成/重新生成/清理所选项目及其依赖项。