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
Copy file name to clipboardExpand all lines: docs/ide/working-with-project-properties.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,8 @@ In the IDE, all information that is needed to build a project is exposed as
75
75
The **Any CPU** target platform value that you might see in **Configuration Manager** has no effect on native C++ projects; it is relevant for C++/CLI and other .NET project types. For more information, see [/CLRIMAGETYPE (Specify Type of CLR Image)](../build/reference/clrimagetype-specify-type-of-clr-image.md).
76
76
77
77
## Property pages
78
-
As stated earlier, the Visual C++ project system is based on [MSBuild](/visualstudio/msbuild/msbuild-properties) and the values are stored in the XML project file, default .props and .targets files that (for Visual Studio 2015) are located in **\<drive>\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140** and in custom .props files that you might add. We highly recommend that you use NOT edit those files manually, and instead use the property pages in the IDE to modify all properties, especially those that participate in inheritance, unless you have a very good understanding of MSBuild.
78
+
As stated earlier, the Visual C++ project system is based on [MSBuild](/visualstudio/msbuild/msbuild-properties) and the values are stored in the XML project file, default .props and .targets files. For Visual Studio 2015, these files are located in **\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140**. For Visual Studio 2017, these files are located in **\\Program Files (x86)\\Microsoft Visual Studio\\2017\\_edition_\\Common7\\IDE\\VC\\VCTargets**
79
+
, where _edition_ is the Visual Studio edition installed. Properties are also stored in any custom .props files that you might add to your own project. We highly recommend that you NOT edit those files manually, and instead use the property pages in the IDE to modify all properties, especially those that participate in inheritance, unless you have a very good understanding of MSBuild.
79
80
80
81
The following illustration shows the property pages for a Visual C++ project. In the left pane, the **VC++ Directories***rule* is selected, and the right pane lists the properties that are associated with that rule. The `$(...)` values are unfortunately called *macros*. These are *not* C/C++ macros but simply compile-time constants. Macros are discussed in the [Property page macros](#bkmkPropertiesVersusMacros) section later in this article.)
Copy file name to clipboardExpand all lines: docs/what-s-new-for-visual-cpp-in-visual-studio.md
+20-12Lines changed: 20 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,8 +60,9 @@ This release brings several improvements in optimization, code generation, tools
60
60
- Improved code generation of loops: Support for automatic vectorization of division of constant integers, better identification of memset patterns.
61
61
- Improved code security: Improved emission of buffer overrun compiler diagnostics, and /guard:cf now guards switch statements that generate jump tables.
62
62
- Versioning: The value of the built-in preprocessor macro _MSC_VER is now being monotonically updated at every Visual C++ toolset update. For more information, see [Visual C++ Compiler Version](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/visual-c-compiler-version/).
63
-
- New toolset layout: The compiler and related build tools have a new location and directory structure on your development machine. The new layout enables side-by-side installations of multiple versions of the compiler. For more information, see [Compiler Tools Layout in Visual Studio “15”](https://blogs.msdn.microsoft.com/vcblog/2016/10/07/compiler-tools-layout-in-visual-studio-15/).
64
-
- Improved diagnostics: The output window now shows the column where an error occurs. For more information, see [C++ compiler diagnostics improvements in VS “15” Preview 5](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/c-compiler-diagnostics-improvements-in-vs-15-rc/).
63
+
- New toolset layout: The compiler and related build tools have a new location and directory structure on your development machine. The new layout enables side-by-side installations of multiple versions of the compiler. For more information, see [Compiler Tools Layout in Visual Studio "15"](https://blogs.msdn.microsoft.com/vcblog/2016/10/07/compiler-tools-layout-in-visual-studio-15/).
64
+
- Improved diagnostics: The output window now shows the column where an error occurs. For more information, see [C++ compiler diagnostics improvements in VS "15" Preview 5](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/c-compiler-diagnostics-improvements-in-vs-15-rc/).
65
+
- When using co-routines, the Experimental keyword "yield" (available under /await switch) has been removed. Your code should be updated to use the "co_yield” instead. For more information, see the Visual C++ Team blog.
65
66
66
67
## C++ Libraries
67
68
@@ -86,6 +87,7 @@ This release brings several improvements in optimization, code generation, tools
86
87
* To increase compiler throughput, C++ Standard Library headers now avoid including declarations for unnecessary compiler intrinsics.
87
88
* Slightly improved compiler diagnostics for incorrect bind() calls.
88
89
* Improved the performance of std::string/std::wstring's move constructors by more than 3x
90
+
* For a complete list of STL improvment see the [STL Fixes In VS 2017 RTM](https://blogs.msdn.microsoft.com/vcblog/2017/02/06/stl-fixes-in-vs-2017-rtm/).
89
91
90
92
### Open source library support
91
93
Vcpkg is an open-source command line tool that greatly simplifies the process of acquiring and building open source C++ static libs and DLLS in Visual Studio. For more information, see [Vcpkg updates: Static linking is now available](https://blogs.msdn.microsoft.com/vcblog/2016/11/01/vcpkg-updates-static-linking-is-now-available/).
@@ -99,8 +101,13 @@ The CPPRestSDK, a cross-platform web API for C++, has been updated to version 2.
99
101
* Un-suppress valid warning C4640 about thread safe init of local statics in atlstr.h
100
102
* Thread Safe Initialization of local statics was automatically turned off in the XP toolset when [using ATL AND building a DLL]. This is no longer the case. You can add /Zc:threadSafeInit- in your Project settings if having thread safe initialization off is desired.
101
103
104
+
### Visual C++ Runtime
105
+
* New header "cfguard.h" for Control Flow Guard symbols.
106
+
102
107
## C++ IDE
103
108
109
+
* Configuration change performance is now better for C++ native projects and much better for C++/CLI projects. When a solution configuration is activated for the first time it will now be faster and all subsequent activations of this solution configuration will be almost instantaneous.
110
+
104
111
### Intellisense
105
112
* The new SQLite-based database engine is now being used by default. This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. The setting has been moved to Tools > Options > Text Editor > C/C++ > Advanced (it was formerly under ...C/C++ > Experimental).
106
113
@@ -120,37 +127,38 @@ The CPPRestSDK, a cross-platform web API for C++, has been updated to version 2.
120
127
121
128
* Find All References (Shift+F12) now helps you get around easily, even in complex codebases. It provides advanced grouping, filtering, sorting, searching within results, and (for some languages) colorization, so you can get a clear understanding of your references. For C++, the new UI includes information about whether we are reading from or writing to a variable.
122
129
123
-
*_**New in RC**_The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.
130
+
* The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.
124
131
125
-
*_**New in RC**_The experimental refactoring features Change Signature and Extract Function are now available by default.
132
+
* The experimental refactoring features Change Signature and Extract Function are now available by default.
126
133
127
-
*_**New in RC**_We've enabled the new experimental feature for C++ projects ‘Faster project load’. The next time you open a C++ project it will load faster, and the time after that it will load really fast!
134
+
* We've enabled the new experimental feature for C++ projects 'Faster project load'. The next time you open a C++ project it will load faster, and the time after that it will load really fast!
128
135
129
136
Some of these features are common to other languages, and some are specific to C++. For more information about these new features, see [Announcing Visual Studio “15”](https://blogs.msdn.microsoft.com/visualstudio/2016/10/05/announcing-visual-studio-15-preview-5/).
130
137
131
138
### Support for non-MSBuild projects with Open Folder
132
139
Visual Studio 2017 introduces the “Open Folder” feature, which enables you to code, build and debug in a folder containing source code without the need to create any solutions or projects. This makes it a lot simpler to get started with Visual Studio even if your project is not an MSBuild-based project. With “Open Folder” you get access to the powerful code understanding, editing, building and debugging capabilities that Visual Studio already provides for MSBuild projects. For more information, see [Bring your C++ codebase to Visual Studio with “Open Folder”](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-codebase-to-visual-studio-with-open-folder/).
133
140
134
-
*_**New in RC**_ Improvements to the Open Folder experience.
135
-
You can customize the experience through these json files:
141
+
* Improvements to the Open Folder experience. You can customize the experience through these json files:
136
142
- CppProperties.json to customize the IntelliSense and browsing experience.
137
143
- Tasks.json to customize the build steps.
138
144
- Launch.json to customize the debugging experience.
139
145
140
146
### CMake support via Open Folder
141
-
Visual Studio 2017 introduces support for using CMake projects without converting to MSBuild project files (.vcxproj). For more information, see [CMake support in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/). Opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.
147
+
Visual Studio 2017 introduces support for using CMake projects without converting to MSBuild project files (.vcxproj). For more information, see [CMake support in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/) and [CMake support in Visual Studio 2017 – what’s new in the RC.2 update](https://blogs.msdn.microsoft.com/vcblog/2016/12/20/cmake-support-in-visual-studio-2017-whats-new-in-the-rc-update/). Opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.
142
148
143
-
*_**New in RC**_C++ IntelliSense will work without the need to create a CppProperties.json file in the root folder. Along with this, we've added a new dropdown to allow users to easily switch between configurations provided by CMake and CppProperties.json files.
149
+
* C++ IntelliSense will work without the need to create a CppProperties.json file in the root folder. Along with this, we've added a new dropdown to allow users to easily switch between configurations provided by CMake and CppProperties.json files.
144
150
145
-
*_**New in RC**_Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file.
151
+
* Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file.
146
152
147
153

148
154
149
155
150
156
## C++ Installation Workloads
151
157
152
158
### Windows Desktop Development with C++:
153
-
We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.
159
+
We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.
160
+
161
+
To successfully create Win32 projects in the C++ desktop workload, you must install both a toolset and a Windows SDK. Installing the recommended (selected) components “VC++ 2017 v141 toolset (x86, x64)” and “Windows 10 SDK (10.0.14393)” will ensure this will work. If the necessary tools are not installed, projects will not be created successfully and the wizard will hang.
154
162
155
163
### Linux Development with C++:
156
164
The popular extension [Visual C++ for Linux Development](https://visualstudiogallery.msdn.microsoft.com/725025cf-7067-45c2-8d01-1e0fd359ae6e) is now part of Visual Studio. This installation provides everything you need to develop and debug C++ applications running on a Linux environment.
@@ -162,7 +170,7 @@ Use the full power of C++ to build professional games powered by DirectX or Coco
162
170
You can now create and debug mobile apps using Visual Studio that can target Android and iOS.
163
171
164
172
### Universal Windows Apps:
165
-
C++ comes as an optional component for the Universal Windows App workload.
173
+
C++ comes as an optional component for the Universal Windows App workload. Upgrading C++ projects currently must be done manually. If you open a v140-targeted UWP project in Visual Studio 2017, you need to select the v141 platform toolset in the project property pages if you do not have Visual Studio 2015 installed.
166
174
167
175
## New options for C++ on Universal Windows Platform
168
176
You now have new options for writing and packaging C++ applications for the Universal Windows Platform and the Windows Store:
0 commit comments