Visual Studio 的 "Add reference" 实际上是做什么的?

What does Visual Studio's "Add reference" actually do?

我正在使用构建系统,更具体地说,是 MSBuild 和 Visual Studio 2019。我正在使用 C++,我正在尝试学习什么正在幕后发生。我正在检查 .sln.vcxproj 文件以及它们之间的关系。现在,这两个文件都是描述 MSBuild 系统属性的 xml 文件。我有一个非常简单的设置:

一个 Visual Studio 解决方案包含:

通过右键单击 CppTesting 项目,VS 会向我显示 "Add reference" 到我的库项目的选项。换句话说 link 我的 CppTesting 项目和 Library 项目。添加参考后,我检查了 CppTesting.vcxprojLibrary.vcxproj 文件,我注意到参考不是在其中任何一个中都有描述。我也无法在 .sln 文件中找到它。

我的问题是:当我在 VS 中使用“Add reference”选项时到底发生了什么。引用描述在哪里?

我正在某些 xml 文件中寻找类似 "CppTesting references Library" 的内容。我试着查看项目的 C/C++ 部分,链接器部分。无法找到描述此依赖项的位置。我找到的官方文档不够深入,没有为我提供答案。

https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp-projects?view=vs-2019

编辑: 已解决。似乎引用的库 (Library.vcxproj) 不存在于任何 XML 中,因为它是空的(或者我太傻了,没有保存我的项目更改)。无论如何,我向其中添加了一些代码,保存了解决方案及其项目,然后我得到了这个(这是预期的结果):

添加引用用于在解决方案中添加引用dll和你的项目。 要查看参考,请右键单击您的项目,然后单击 卸载项目,然后再次右键单击您的项目并单击编辑 yourproject.csproj。 您会在那里找到所有参考资料。

项目和解决方案文件的更改不会立即发生。当您从 Visual Studio 中对项目或解决方案进行更改时,您可以通过执行 Ctrl + Shift + S 或从文件菜单中保存全部来强制更新文件。

解决方案文件,各种项目文件只是文本文件(更具体地说 XML 文件)。这些文件包含构建系统的信息 (MSBUILD) 并且是 "consumed"。在一般情况下,当您使用 Visual Studio 提供的 UI 时,您只是在修改 XML 文件(修改您为构建系统提供的输入).我最初的问题是因为在使用 VS 提供的“Add reference”功能时在项目文件中找不到任何引用的痕迹,我感到困惑。原来我没有正确保存我的项目 files/solution 并且引用丢失了。

额外说明:Visual Studio 的最新版本支持其他构建系统,例如 CMake