Visual Studio的“添加引用”实际上是做什么的?

时间:2019-08-05 09:44:18

标签: c++ visual-studio msbuild visual-studio-2019 build-system

我正在使用构建系统,更具体地说是使用 MSBuild 和Visual Studio2019。我正在使用C ++,并且我试图了解幕后的情况。我正在检查 .sln .vcxproj 文件以及它们之间的关系。现在,两个文件都是描述MSBuild系统属性的xml文件。我有一个非常简单的设置:

solution-setup

Visual Studio解决方案,其中包含:

  • CppTesting项目(内容类型-Application,.exe)

  • 库项目(内容类型-静态库,.lib)

通过右键单击CppTesting项目,VS为我提供了“添加引用”到我的Library项目的选项。换句话说,将我的CppTesting项目与Library项目链接在一起。添加参考后,我检查了 CppTesting.vcxproj Library.vcxproj 文件,并且我注意到在这两个文件中都没有描述该参考。我也没有在 .sln 文件中找到它。

我的问题是:当我在VS中使用“ 添加引用”选项时,会发生什么情况。参考在哪里描述?

我正在某个xml文件中寻找类似“ CppTesting引用库”的内容。我尝试查看项目的C / C ++部分(链接器部分)。找不到描述此依存关系的位置。我发现的官方文档不够深入,也无法为我提供答案。

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

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

enter image description here

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

解决方案文件,各种项目文件只是文本文件(更具体地说是XML文件)。这些文件包含有关构建系统( MSBUILD )的信息,并由其“消耗”。通常,当您使用 Visual Studio 提供的UI时,您只是在修改XML文件(修改您为构建系统提供的输入)。我的第一个问题是天生的,因为使用VS提供的“ 添加引用”功能时,在项目文件中找不到任何引用的痕迹,我感到困惑。原来,我没有正确保存项目文件/解决方案,并且缺少引用。

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