我能否在 Visual Studio Code 中根据现有代码创建项目

我能否在 Visual Studio Code 中根据现有代码创建项目

我正在远程主机上开发一个应用程序。我尝试使用 Visual Studio Code 调试应用程序,并被要求在 Visual Studio 中“从现有代码创建项目”。我使用的是 Ubuntu,经过一番挖掘后,我意识到如果我想要一些功能,我需要“Visual Studio IDE”而不是“Visual Studio Code”。我想知道是否可以在 VS-code 中从现有代码创建项目。

答案1

我是一名经验丰富的开发人员,但刚刚开始熟悉如何使用 VSCode 和 Java,因此我可能在这里提供的细节不正确。我所能提供的只是我最近的经验和观察。所有这些似乎已经持续了大约一年,所以这不是在原始问题和自我接受的答案之后才出现的新细节。

重要的:在写完这里的所有内容后检查事实,并仔细检查以确保我正确理解了这里的注释和断言时,我发现@revolution 使用的是 C++,而不是 Java。哎呀,我错过了。好的。问题和应用的标签是关于 VSCode 的,而不是专门标记为 C++。我在这里的笔记证实了 VSCode能够完成 OP 所要求的事情... 这是该问题的正确答案。OP 并没有具体询问 C++。他的问题的答案是“是的,VSCode 可以做到这一点”。他实际上想问的问题的答案是“VSCode 能用 C++ 做到这一点吗?”... 我不知道。抱歉。总之,我希望其他偶然发现这个帖子的人能从这里的注释中受益。

我的目标是纠正这个帖子中的一些断言:

  • 无法使用现有代码创建项目“——不正确,见下文。
  • 由于我的需求是调试项目,我意识到有必要创建一个项目“——不正确,见下文。
  • Visual Studio Code 中不包含创建、保存或加载“项目”的概念,因为“项目”取决于您使用的特定编程语言和编译器。“这个是正确的,没有 VSCode 扩展。但我们都使用扩展。这是出于上述原因的要求。因此,有了扩展,我们就有了解决方案,这就排除了该评论后面的总结。

实际上我们可以使用扩展在 VSCode 中创建项目和工作区。参考: https://code.visualstudio.com/docs/languages/java
https://code.visualstudio.com/docs/java/java-project
https://blog.usejournal.com/visual-studio-code-for-java-the-ultimate-guide-2019-8de7d2b59902
请原谅这些链接,有许多类似的页面,如果需要,请搜索“VSCode Java 扩展”。

  • VSCode 工作区是简单的“便利”主文件夹分组,概念上类似于 VS 解决方案,但集成度较低(有些人会说“不”) 。您可以拥有一个包含任何语言或类型的不同根文件夹的工作区。它们都独立构建和运行。

此处讨论的 VSCode 项目是特定于 Java 的:

  • 项目文件夹包含.project 文件、.classpath 和其他有助于管理单个项目的文件。
  • 项目与 Visual Studio 项目不同。它是 Eclipse 样式,因为扩展的基础基于 Eclipse。
  • 项目与构建细节没有直接关联。构建和调试在项目中通过启动文件和其他文件来简化,但您可以使用 Ant、Maven 等来增强构建过程。
  • 工作区中的每个主文件夹都可以是一个项目:就像在 VS 中一样,其中 .xxproj 文件夹和文件在 .sln 下组织。
  • 工作区中的主文件夹不必是项目。项目的概念增强了文件夹,并允许 VSCode 在主文件夹中执行特殊操作,但工作区中的根文件夹混合为项目和非项目是完全有效的。这与 Visual Studio 不同,如上所述,在 Visual Studio 中,我们期望解决方案中有“项目”,但解决方案文件夹除外。在 VS 术语中(不是 VSCode),您可能会将工作区视为具有零个或多个解决方案文件夹以及零个或多个项目文件夹。

对于从现有代码创建项目的原始问题,这就是我偶然发现此页面的方式:

在 VSCode 中,您可以通过 F1 创建一个新项目并创建 Java 项目。我认为我们暂时无法将项目集成到现有文件夹中。我所做的是创建一个新项目,然后手动将现有代码重新合并到其中。这是一个巨大的麻烦,尤其是对于 .git 文件夹,需要删除/替换 src 文件夹,并且需要手动修改 .classpath XML 文件以添加新的“lib”详细信息。(我猜 FOSS 世界中的某个人正在/将会解决其中的一些问题。)

完成所有这些改组后,请务必保存新项目,将其保存到工作区,退出应用程序并返回重新加载所有内容。是的,这似乎是必需的,我认为是因为 Eclipse 需要它,此环境使用 Eclipse 代码,并且该代码具有在进行此类操作后需要重新加载的详细信息。

由于@revolution 专注于调试:

带有这些 Java 扩展的 VSCode 确实支持使用断点、监视、步入/步出和其他与 Visual Studio 类似的功能进行调试。(请参阅上面的参考。)甚至还有一个热选项,允许在逐步执行代码时修改代码。自从 VS 首次推出以来,我一直在使用 VS,我可以肯定 VSCode 远没有那么强大的调试器,但它可以完成工作。

关于: ”我正在远程主机上开发一个应用程序。“VSCode 扩展确实支持远程调试,但我尚未使用所宣传的功能,因此无法评论其用途。

再次,我希望这个答案对某些人有帮助,即使对接受了自己错误答案的 OP 没有帮助。

答案2

Visual Studio Code 不是 IDE。默认的 Ubuntu 存储库中有几个真正的 IDE,但 Visual Studio Code 不是其中之一。因此,无法像在 Visual Studio 中那样在 Visual Studio Code 中创建项目。

另一方面,可以使用 Code Runner 扩展直接在 Visual Studio Code 中运行 Python、C、C++、JavaScript、PHP、Java、R 和其他一些编程语言代码块。还可以使用在浏览器中打开的扩展在外部 Web 浏览器中运行 HTML 代码。

我查看了您在 Stack Overflow 上提出的问题,我会使用 Spyder ( sudo apt install spyder3) 作为 Python 代码的 IDE。Spyder 内置了 IPython,如果您已经有代码,那么所有内容几乎都可以复制、粘贴和运行,并且图形输出是内联的,因此您可以在解释器中运行代码并查看代码正在做什么。我不会使用 PyCharm,除非我需要 Spyder 没有的功能,原因与我使用 Visual Studio Code 相同 - 为了加快我的工作流程。

答案3

正如 @karel 和 @DanielB 所提到的,与 VS-IDE 不同,无法在 VS-Code 中使用现有代码创建项目。

但是,由于我的要求是调试项目,我意识到有必要创建一个项目。因此,当我添加调试配置时,VS-code 会自动.vscode在现有代码的根目录中添加文件夹。我们现在可以在中添加不同的调试配置<root>/.vscode/launch.json。您可以选择需要运行的调试器配置。这包括复合调试配置,例如 node.js 和 C++ 一起,就像我的情况一样。此功能足以完成我的任务。

答案4

Visual Studio Code 中不包含创建、保存或加载“项目”的概念,因为“项目”取决于你使用的特定编程语言和编译器。VS Code 旨在处理任何语言或编译器,通过扩展和定制软件来满足您的需求。

您可能会发现 Microsoft 的以下指南对于设置它以使用 C++ 很有帮助:

Visual Studio Code 中的 C/C++
为 Microsoft C++ 配置 VS Code

当然,这些指南将指导您使用 VS Code 中的 Visual Studio 编译器,这无论如何都需要安装 Visual Studio!


CMake是创建 C++“项目”的另一种方法,它允许使用相同的项目文件在多个平台上使用各种编译器构建代码。CMakeLists.txt为现有代码库编写配置文件需要一点工作量。

您可以使用 VS Code 打开 CMake 项目CMake 工具扩展

相关内容