|
1 | 1 | ---
|
2 |
| -description: "Learn more about: Advanced Property Page" |
| 2 | +description: "Use the Advanced property page in Visual Studio 2019 to set various properties for C++ projects." |
3 | 3 | title: "Advanced Property Page (Project)"
|
4 |
| -ms.date: 02/05/2021 |
5 |
| -f1_keywords: ["VC.Project.VCConfiguration.VCToolsVersion","VC.Project.VCConfiguration.LLVMToolsVersion"] |
6 |
| -ms.description: "Use the Advanced property page in Visual Studio 2019 to set various properties for C++ projects." |
| 4 | +ms.date: 05/28/2021 |
| 5 | +f1_keywords: ["VC.Project.VCConfiguration.TargetExt", "VC.Project.VCConfiguration.DeleteExtensionsOnClean", "VC.Project.VCConfiguration.BuildLogFile", "VC.Project.VCConfiguration.PreferredToolArchitecture", "VC.Project.VCConfiguration.UseDebugLibraries", "VC.Project.VCConfiguration.EnableUnitySupport", "VC.Project.VCConfiguration.CopyLocalDeploymentContent", "VC.Project.VCConfiguration.CopyLocalProjectReference", "VC.Project.VCConfiguration.CopyLocalDebugSymbols", "VC.Project.VCConfiguration.CopyCppRuntimeToOutputDir", "VC.Project.VCConfiguration.useOfMfc", "VC.Project.VCConfiguration.CharacterSet", "VC.Project.VCConfiguration.WholeProgramOptimization", "VC.Project.VCConfiguration.VCToolsVersion", "VC.Project.VCConfiguration.LLVMToolsVersion", "VC.Project.VCConfiguration.ManagedExtensions", "VC.Project.TargetFrameworkVersion", "VC.Project.VCConfiguration.EnableManagedIncrementalBuild"] |
7 | 6 | ---
|
8 | 7 | # Advanced Property Page
|
9 | 8 |
|
10 | 9 | ::: moniker range="<=msvc-150"
|
11 | 10 |
|
12 |
| -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. |
| 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. In earlier versions of Visual Studio, these properties appear on the [General property page](./general-property-page-project.md): |
| 12 | + |
| 13 | +- [Target Extension](./general-property-page-project.md#target-extension) |
| 14 | +- [Extensions to Delete on Clean](./general-property-page-project.md#extensions-to-delete-on-clean) |
| 15 | +- [Build Log File](./general-property-page-project.md#build-log-file) |
| 16 | +- [Enable Managed Incremental Build](./general-property-page-project.md#enable-managed-incremental-build) |
| 17 | +- [Use of MFC](./general-property-page-project.md#use-of-mfc) |
| 18 | +- [Character Set](./general-property-page-project.md#character-set) |
| 19 | +- [Whole Program Optimization](./general-property-page-project.md#whole-program-optimization) |
| 20 | +- [Common Language Runtime support](./general-property-page-project.md#common-language-runtime-support) |
| 21 | +- [.NET Target Framework Version](./general-property-page-project.md#net-target-framework-version) |
13 | 22 |
|
14 | 23 | ::: moniker-end
|
15 | 24 |
|
16 | 25 | ::: moniker range="msvc-160"
|
17 | 26 |
|
18 |
| -The Advanced property page is available in Visual Studio 2019 and later. |
| 27 | +The Advanced property page is available in Visual Studio 2019 and later. The specific properties shown depend on the project type. Windows Runtime (Universal Windows Platform, or UWP) projects don't show this page. |
19 | 28 |
|
20 | 29 | ## Advanced Properties
|
21 | 30 |
|
22 |
| -- **Target File Extension** |
| 31 | +### Target File Extension |
23 | 32 |
|
24 |
| - Specifies the file extension to use for the build output. Defaults to *`.exe`* for applications, *`.lib`* for static libraries and *`.dll`* for DLLs. |
| 33 | +Specifies the file extension to use for the build output. Defaults to *`.exe`* for applications, *`.lib`* for static libraries and *`.dll`* for DLLs. |
25 | 34 |
|
26 |
| -- **Extensions to Delete on Clean** |
| 35 | +### Extensions to Delete on Clean |
27 | 36 |
|
28 |
| - 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. |
| 37 | +The **Build** > **Clean** menu command deletes files from the intermediate directory where a project's configuration is built. The build system deletes files that have the specified extensions when you run the **Clean** command or when you rebuild. The build system also deletes any known output of the build no matter where it's located. Deleted files include any intermediate outputs such as *`.obj`* files. Use semicolons (**`;`**) to separate extensions. You can specify wildcard characters (**`*`**, **`?`**) in the extensions. |
29 | 38 |
|
30 |
| - To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProjectEngine.VCConfiguration.DeleteExtensionsOnClean%2A>. |
| 39 | +To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProjectEngine.VCConfiguration.DeleteExtensionsOnClean%2A>. |
31 | 40 |
|
32 |
| -- **Build Log File** |
| 41 | +### Build Log File |
33 | 42 |
|
34 |
| - 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`. |
| 43 | +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`. |
35 | 44 |
|
36 |
| - 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). |
| 45 | +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). |
37 | 46 |
|
38 |
| -- **Preferred Build Tool Architecture** |
| 47 | +### Preferred Build Tool Architecture |
39 | 48 |
|
40 |
| - Specifies whether to use the x86 or x64 build tools. |
| 49 | +Specifies whether to use the x86 or x64 build tools. |
41 | 50 |
|
42 |
| -- **Use Debug Libraries** |
| 51 | +### Use Debug Libraries |
43 | 52 |
|
44 |
| - Specifies whether to create a Debug or Release build. |
| 53 | +Specifies whether to create a Debug or Release build. |
45 | 54 |
|
46 |
| -- **Enable Unity (JUMBO) build** |
| 55 | +### Enable Unity (JUMBO) build |
47 | 56 |
|
48 |
| - 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. |
| 57 | +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. |
49 | 58 |
|
50 |
| -- **Copy Content to OutDir** |
| 59 | +### Copy Content to OutDir |
51 | 60 |
|
52 |
| - 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. |
| 61 | +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. |
53 | 62 |
|
54 |
| -- **Copy Project References to OutDir** |
| 63 | +### Copy Project References to OutDir |
55 | 64 |
|
56 |
| - 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. |
| 65 | +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. |
57 | 66 |
|
58 |
| -- **Copy Project References' Symbols to OutDir** |
| 67 | +### Copy Project References' Symbols to OutDir |
59 | 68 |
|
60 |
| - 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. |
| 69 | +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. |
61 | 70 |
|
62 |
| -- **Copy C++ Runtime to OutDir** |
| 71 | +### Copy C++ Runtime to OutDir |
63 | 72 |
|
64 |
| - 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. |
| 73 | +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. |
65 | 74 |
|
66 |
| -- **Use of MFC** |
| 75 | +### Use of MFC |
67 | 76 |
|
68 |
| - 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. |
| 77 | +Specifies whether the MFC project statically or dynamically links to the MFC DLL. Non-MFC projects select **Use Standard Windows Libraries**. |
69 | 78 |
|
70 |
| - To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.useOfMfc%2A>. |
| 79 | +To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.useOfMfc%2A>. |
71 | 80 |
|
72 |
| -- **Character Set** |
| 81 | +### Character Set |
73 | 82 |
|
74 |
| - Defines whether `_UNICODE` or `_MBCS` should be set. Also affects the linker entry point where appropriate. |
| 83 | +Specifies whether the `_UNICODE` or `_MBCS` preprocessor macro should be set. Also affects the linker entry point, where appropriate. |
75 | 84 |
|
76 |
| - To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.CharacterSet%2A>. |
| 85 | +To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.CharacterSet%2A>. |
77 | 86 |
|
78 |
| -- **Whole Program Optimization** |
| 87 | +### Whole Program Optimization |
79 | 88 |
|
80 |
| - 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. |
| 89 | +Specifies the [`/GL`](gl-whole-program-optimization.md) compiler option and [`/LTCG`](ltcg-link-time-code-generation.md) linker option. By default, this property is disabled for Debug configurations, and enabled for Release configurations. |
81 | 90 |
|
82 |
| -- **MSVC Toolset Version** |
| 91 | +### MSVC Toolset Version |
83 | 92 |
|
84 |
| - 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. |
| 93 | +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. |
85 | 94 |
|
86 |
| -- **LLVM Toolset Version** |
| 95 | +### LLVM Toolset Version |
87 | 96 |
|
88 |
| - Specifies the full version of the LLVM toolset that's used to build the project. This property is available when **LLVM (clang-cl)** is selected as the platform toolset, starting in Visual Studio 2019 version 16.9. For more information, see [Set a custom LLVM toolset version](..\clang-support-msbuild.md#custom_llvm_toolset). |
| 97 | +Specifies the full version of the LLVM toolset that's used to build the project. This property is available when **LLVM (clang-cl)** is selected as the platform toolset, starting in Visual Studio 2019 version 16.9. For more information, see [Set a custom LLVM toolset version](..\clang-support-msbuild.md#custom_llvm_toolset). |
89 | 98 |
|
90 | 99 | ## C++/CLI Properties
|
91 | 100 |
|
92 |
| -- **Common Language Runtime support** |
| 101 | +### Common Language Runtime support |
93 | 102 |
|
94 |
| - Causes the [`/clr`](clr-common-language-runtime-compilation.md) compiler option to be used. |
| 103 | +Causes the [`/clr`](clr-common-language-runtime-compilation.md) compiler option to be used. |
95 | 104 |
|
96 |
| - To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.ManagedExtensions%2A>. |
| 105 | +To programmatically access this property, see <xref:Microsoft.VisualStudio.VCProject.VCProjectConfigurationProperties.ManagedExtensions%2A>. |
97 | 106 |
|
98 |
| -- **.NET Target Framework Version** |
| 107 | +### .NET Target Framework Version |
99 | 108 |
|
100 |
| - In managed projects, specifies the .NET framework version to target. |
| 109 | +In managed projects, specifies the .NET framework version to target. |
101 | 110 |
|
102 |
| -- **Enable Managed Incremental Build** |
| 111 | +### Enable Managed Incremental Build |
103 | 112 |
|
104 |
| - 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. |
| 113 | +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. |
105 | 114 |
|
106 | 115 | ::: moniker-end
|
0 commit comments