You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ms.description: "Use the Advanced property page in Visual Studio 2019 to set various properties for C++ projects."
6
6
---
7
7
# Advanced Property Page
8
8
9
-
The Advanced property page is available in Visual Studio 2019 and later.
9
+
::: moniker range="<=vs-2017"
10
+
11
+
The Advanced property page is available in Visual Studio 2019 and later. To see the documentation for that version, set the Visual Studio **Version** selector control for this article to Visual Studio 2019. It's found at the top of the table of contents on this page.
12
+
13
+
::: moniker-end
10
14
11
15
::: moniker range="vs-2019"
12
16
17
+
The Advanced property page is available in Visual Studio 2019 and later.
18
+
13
19
## Advanced Properties
14
20
15
21
-**Target File Extension**
16
22
17
-
Specifies the file extension to use for the build output. Defaults to **.exe** for applications, **.lib** for static libraries and **.dll** for DLLs.
23
+
Specifies the file extension to use for the build output. Defaults to *`.exe`* for applications, *`.lib`* for static libraries and *`.dll`* for DLLs.
18
24
19
25
-**Extensions to Delete on Clean**
20
26
21
-
The **Clean** option (**Build** menu) deletes files from the intermediate directory where a project's configuration is built. Files with extensions specified with this property will be deleted when **Clean** is run or when you perform a rebuild. In addition to files of these extensions in the intermediate directory, the build system will also delete any known output of the build regardless of where it is located (including intermediate outputs such as .obj files). Note that you can specify wildcard characters.
27
+
The **Clean** option (**Build** menu) deletes files from the intermediate directory where a project's configuration is built. Files with extensions specified in this property get deleted when **Clean** is run or when you rebuild. The build system deletes any files that have these extensions in the intermediate directory. It also deletes any known output of the build, no matter where it's located. (That includes the intermediate outputs such as *`.obj`* files.) You can specify wildcard characters in this property.
22
28
23
29
To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProjectEngine.VCConfiguration.DeleteExtensionsOnClean%2A>.
24
30
25
31
-**Build Log File**
26
32
27
-
Allows you to specify a non-default location for the log file that is created whenever you build a project. The default location is specified by the macros $(IntDir)$(MSBuildProjectName).log.
33
+
Allows you to specify a non-default location for the log file that's created whenever you build a project. The default location is specified by the macros `$(IntDir)$(MSBuildProjectName).log`.
28
34
29
35
You can use project macros to change the directory location. See [Common macros for build commands and properties](common-macros-for-build-commands-and-properties.md).
30
36
@@ -34,37 +40,53 @@ The Advanced property page is available in Visual Studio 2019 and later.
34
40
35
41
-**Use Debug Libraries**
36
42
37
-
Specifies whether to create a DEBUG or RELEASE build.
43
+
Specifies whether to create a Debug or Release build.
38
44
39
45
-**Enable Unity (JUMBO) build**
40
46
41
-
Enables a build process where many C++ source files are combined into one or more "unity" files before compilation to improve build performance. Unrelated to the Unity game engine.
47
+
Enables a faster build process that combines many C++ source files into one or more files before compilation. These combined files are known as *unity* files. They're unrelated to the Unity game engine.
48
+
49
+
-**Copy Content to OutDir**
50
+
51
+
Copy the items marked as *content* in the project to the project's output directory (`$(OutDir)`). This setting can simplify deployment. This property is available starting in Visual Studio 2019 version 16.7.
52
+
53
+
-**Copy Project References to OutDir**
54
+
55
+
Copy the executable (DLL and EXE file) project reference items to the project's output directory (`$(OutDir)`). In C++/CLI ([`/clr`](clr-common-language-runtime-compilation.md)) projects, this property is ignored. Instead, the **Copy Local** property on each project reference controls whether it's copied to the output directory. This setting can simplify local deployment. It's available starting in Visual Studio 2019 version 16.7.
56
+
57
+
-**Copy Project References' Symbols to OutDir**
58
+
59
+
Copy the PDB files for project reference items along with the project reference executable items to the project's output directory (`$(OutDir)`). This property is always enabled for C++/CLI projects. This setting can simplify debug deployment. It's available starting in Visual Studio 2019 version 16.7.
60
+
61
+
-**Copy C++ Runtime to OutDir**
62
+
63
+
Copy the runtime DLLs to the project's output directory (`$(OutDir)`). This setting can simplify local deployment. It's available starting in Visual Studio 2019 version 16.7.
42
64
43
65
-**Use of MFC**
44
66
45
-
Specifies whether the MFC project will statically or dynamically link to the MFC DLL. Non-MFC projects can select **Use Standard Windows Libraries** to link to various Win32 libraries that are included when you use MFC.
67
+
Specifies whether the MFC project statically or dynamically links to the MFC DLL. In non-MFC projects, select **Use Standard Windows Libraries** to link the Win32 libraries included by MFC.
46
68
47
69
To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.useOfMfc%2A>.
48
70
49
71
-**Character Set**
50
72
51
-
Defines whether _UNICODE or _MBCS should be set. Also affects the linker entry point where appropriate.
73
+
Defines whether `_UNICODE` or `_MBCS` should be set. Also affects the linker entry point where appropriate.
52
74
53
75
To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.CharacterSet%2A>.
54
76
55
77
-**Whole Program Optimization**
56
78
57
-
Specifies the [/GL](gl-whole-program-optimization.md) compiler option and [/LTCG](ltcg-link-time-code-generation.md) linker option. By default, this is disabled for Debug configurations, and enabled for Retail configurations.
79
+
Specifies the [`/GL`](gl-whole-program-optimization.md) compiler option and [`/LTCG`](ltcg-link-time-code-generation.md) linker option. By default, whole program optimization is disabled for Debug configurations, and enabled for Release configurations.
58
80
59
81
-**MSVC Toolset Version**
60
82
61
-
Specifies the full version of the MSVC toolset that will be used to build the project. If you have various update and preview versions of a toolset installed, you can specify which one to use here.
83
+
Specifies the full version of the MSVC toolset that's used to build the project. You may have various update and preview versions of a toolset installed. You can specify which one to use here.
62
84
63
85
## C++/CLI Properties
64
86
65
87
-**Common Language Runtime support**
66
88
67
-
Causes the [/clr](clr-common-language-runtime-compilation.md) compiler option to be used.
89
+
Causes the [`/clr`](clr-common-language-runtime-compilation.md) compiler option to be used.
68
90
69
91
To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.ManagedExtensions%2A>.
70
92
@@ -74,6 +96,6 @@ The Advanced property page is available in Visual Studio 2019 and later.
74
96
75
97
-**Enable Managed Incremental Build**
76
98
77
-
For managed projects, this enables detection of external visibility when you generate assemblies. If a change to a managed project is not visible to other projects, then dependent projects are not rebuilt. This can dramatically improve build times in solutions that include managed projects.
99
+
For managed projects, this option enables detection of external visibility when you generate assemblies. If a change to a managed project isn't visible to other projects, dependent projects aren't rebuilt. Managed incremental builds can dramatically improve build times in solutions that include managed projects.
0 commit comments