如何使用Visual Studio处理大型非VS代码库

How can I use Visual Studio to work with large non-VS codebase?

本文关键字:VS 代码 大型 处理 何使用 Visual Studio      更新时间:2023-10-16

我是一个经验丰富的C#开发人员,但对C++知识知之甚少。我已经为自己设置了一个项目,以运行自定义的Firefox构建,并能够从C#代码中控制它。

到目前为止,我已经获得并构建了Firefox源代码,并为exe创建了Visual Studio解决方案。这意味着我现在可以在Visual studio中通过F5运行了。如果我打开一个源文件,我可以设置断点并命中它们。

我不知道如何加载整个源代码,就好像我在使用C#.NET解决方案一样。据我所知,没有Firefox源代码的项目文件,因为它不是windows特定的源代码。我遵循了一个在线示例,该示例建议在VS中使用"现有代码中的项目"选项创建,这导致VS由于文件太多而陷入停顿。

将代码放入一个使编辑、调试和导航源代码变得简单的环境(最好是Visual Studio)的步骤是什么。

注意:到目前为止,我一直在处理的说明如下:https://cs.senecac.on.ca/~david.humphrey/writing/debugging-firefox.html

从你的问题来看,我相信你已经差不多了。你有一个正在工作的版本?这意味着你有:

  1. 解决方案文件(*.sln)
  2. 项目文件(*.vcxproj或*.vcproj,取决于您的visual studio版本)

有了这个,最适合我的是这个布局(根据您的需求调整):

  • 从你喜欢的根文件夹开始,比如MyProject
  • 在那里创建一个新的Empty解决方案
  • 将包含工作构建的文件夹移动到子目录中,如MyProjectMyCustomFirefox
  • 在Visual Studio中"添加现有项目"并找到vcxproj文件
  • 在同一个解决方案中,像往常一样,在与FF构建相同级别的目录中创建一个C#项目,如MyProjectMyFirefoxController

简而言之,解决方案文件在根目录中几乎是单独的,每个项目都在自己的目录中。

您还需要调整构建选项,以便C#项目可以看到输出文件(DLL或EXE)。当你在做的时候,让C#项目依赖于你的Firefox版本:如果你改变了另一个,它会指示msbuild重建一个。我相信这对Express版不起作用。它们是单一的语言。

如果您有一个命令行构建路径,它正在创建一个VS可调试的可执行文件,您可以尝试将所有源文件添加到项目中,但将其标记为"从构建中排除"。然后添加一个"构建后步骤"来调用命令行工具。

您可能需要对项目属性进行更多的调整,才能将命令行输出识别为要调试的输出,但理论上这是可行的。