# VS属性管理器

在visual studio 中所有的编译选项、链接选项、调试选项、以及自定义的构建步骤，都是在属性管理器（Project Properties Manager）中进行配置的。你可以为不同的构建组合（Debug 或 Release）、目标平台（Win32，x64，或者 ARM）来使用独立的属性配置。你也可以为一个项目设置独立的配置。\
&#x20;       虽然你可以在一台计算机上设置一个全局的配置，但是我们不推荐你这么做。我们建议你使用属性管理器（ **Property Manager**）来为每一种你希望重复使用（或与他人分享）的项目来创建一个独立的属性表。\
&#x20;       执行下面的操作来显示属性管理器：视图（View）->其他窗口(Other Windows)->属性管理器(Property Manager)。\
&#x20;       虽然你可以直接编写属性表，但是我们仍然要强烈的建议你使用IDE，因为你自己编写的可能会存在一些细微的问题。\
&#x20;       在VS中工程文件是以.vcxproj结尾的XML文件。你在IDE中设置的属性全部直接写在工程文件里面了、或者你构建时导入的属性表。\
\
&#x20;       ![](https://i-msdn.sec.s-msft.com/dynimg/IC816336.jpeg)\
&#x20;       上图展示了Visual C++项目的属性配置页面。$(...)代表宏，VC++ Directories是一个可配置的属性，它的值可以随着不同的配置而不同-比如，Debug或Release。你可以使用配置和平台列表（在配置页的上方）来设置当前属性表针对的平台和配置。在大多数情况下，全平台和全配置应该是正确的选择。<br>

#### &#x20;    为一个项目设置属性 <a href="#t1" id="t1"></a>

&#x20;       通用的步骤如下：

&#x20;       1\. 在菜单工具栏上点击**Project**->**Properties**或者在**解决方管理器、属性管理器**中打开快捷菜单并选择**Properties**，属性管理器对话框就可以打开了。

&#x20;     2\. 在最上面选择你的配置和目标平台。

&#x20;     3\. 设置属性值，完成后点击ok按钮，新值就存到你的工程文件中了。

## cmake编译后的sln中ALL\_BUILD和INSTALL项目解析 <a href="#articlecontentid" id="articlecontentid"></a>

使用cmake编译好一个库后，生成的sln工程一般会包含如下几个项目：

ALL\_BUILD生成所有项目，但不包括install和单元测试等。 INSTALL把cmake脚本里install指令指定的东西安装到CMAKE\_INSTALL\_DIR里面。   一般在vs生成的时候，就只需要考虑依次生成这两个项目就可以了。&#x20;

<figure><img src="/files/vFvB5tD3Msmi9iJWfn1Q" alt=""><figcaption></figcaption></figure>

```
cmake_minimum_required(VERSION 3.0)
project(EmptyProject)

# 添加一个空的可执行文件
add_executable(MyExecutable 
    main.cpp
)
```

这样用CMake去生成之后，VS的属性管理器中就有

<figure><img src="/files/RFPTfxLPI5bXeDUaVF55" alt=""><figcaption></figcaption></figure>

## visual studio 的 .sln 文件和 .vcxproj 文件的区别和联系 <a href="#articlecontentid" id="articlecontentid"></a>

Visual Studio是一款广泛使用的开发工具，其中 .sln 文件和 .vcxproj 文件是两个常用的项目文件，它们之间有着一定的区别和联系。

.sln 文件（解决方案文件）： .sln 文件是 Visual Studio 的解决方案文件，用于组织和管理一个或多个项目。它可以包含一个或多个项目，以及这些项目之间的关系和配置信息。一个 .sln 文件本身并不包含任何代码或文件，它只是包含引用到该解决方案中所有项目的信息和设置。.sln 文件可以存储在版本控制系统中，以便多个开发人员共享和协作。

.vcxproj 文件（项目文件）： .vcxproj 文件是 Visual C++ 项目文件，包含项目的设置和配置信息，例如编译器选项、预处理器选项、文件列表和库依赖项等。它通常是随着每个项目的创建而生成的，并存储在项目的根目录下。每个项目都有一个单独的 .vcxproj 文件，而解决方案只包含对每个项目的引用

区别和联系： .sln 文件和 .vcxproj 文件是 Visual Studio 中的两个不同的文件类型，前者用于管理多个项目，后者用于管理单个项目。 .sln 文件包含对每个项目的引用和组织信息，而 .vcxproj 文件包含一个项目中的设置和配置信息。 .sln 文件是一个顶层的文件，而 .vcxproj 文件是每个项目的底层文件。.sln 文件可以包含多个 .vcxproj 文件，但一个 .vcxproj 文件只能属于一个 .sln 文件。 在操作上，可以从 Visual Studio 的“文件”菜单中打开或创建 .sln 文件，也可以直接双击打开已经在的 .sln 文件。而对于 .vcxproj 文件，则可以从 Visual Studio 的“项目资源管理器”中打开或编辑。在解决方案中添加或移除项目时，.sln 文件和 .vcxproj 文件都会被相应地更新。 总体来说，.sln 文件和 .vcxproj 文件通过引用和关联，共同管理多个项目和单个项目的设置和配置，使得 Visual Studio 使用起来更加便捷和灵活。 综上所述，.sln 文件和 .vcxproj 文件是 Visual Studio 中的两个不同的文件类型，在项目的组织和管理、项目的设置和配置等方面扮演着不同的角色，同时具有一定的联系和互动。&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tysun.gitbook.io/c++/vs-shu-xing-guan-li-qi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
