7++ reasons to move your C++ code to Visual Studio 2017

Whether you are a full-time or occasional C++ developer, whether you are using an older Visual Studio version or are considering using Visual Studio for the first time, this blog post is for you. In this post I share seven reasons why Visual Studio 2017 should be your first choice of IDE for C++ development… Read more

Programmatically adding/removing/querying VC++ Build Customizations

Build Customizations (Custom Build Rules in earlier editions) are commonly used for invoking external tools that translate files from one format to the other, often resulting in C++ sources that can be compiled at the C++ compilation step. In this post, I will explain how to programmatically add, remove,  and query for Build Customizations in… Read more

A guide to .vcxproj and .props file structure

  If you inspect the contents of a .vcxproj file (the new VC++ project file format in VS2010) in notepad or in VS editor (by first unloading the project and then choosing “Edit Foo.vcxproj” from the context menu in Solution Explorer), you will see that the various top-level MSBuild elements are laid out in a… Read more

Custom Build Steps, Tools, and Events

The VC++ build system is of course MSBuild based in VS 2010.  This automatically gives you a great deal more flexibility to customize your build than you had with .vcproj project files in prior releases.  We went out of our way to ensure that the .targets files that drive the build of a .vcxproj file… Read more

Tuning C++ build parallelism in VS2010

A great way to get fast builds on a multiprocessor computer is to take advantage of as much parallelism in your build as possible. If you have C++ projects, there’s two different kinds of parallelism you can configure. What are the dials I can set? Project-level parallel build, which is controlled by MSBuild, is set… Read more

How to read/write the new Visual C++ project properties

Visual C++ 2010 introduces several new project and tool properties, and deprecates some old ones.  If you’re writing a project template or Visual Studio extension that needs to programmatically read and write the new properties, you will find that these properties are not available on the standard VCConfiguration, VCCLCompilerTool, etc. set of interfaces.  These are… Read more