Visual Studio 2019 version 16.1 Preview 2

Paul Chapman

The second preview of Visual Studio 2019 version 16.1 is now available. You can download it from, or, if you already have installed Preview, just click the notification bell inside Visual Studio to update. This latest preview contains additional performance and reliability fixes as well as enhancements for debugging, NuGet, extensibility, and C++ development. We’ve highlighted some notable features below. You can see a list of all the changes in the Preview release notes.

Improvements for C++ developers

CMake integration

In-editor helpers: We’ve added in-editor documentation for CMake commands, variables, and properties. You can now leverage IntelliSense autocompletion and quick info tooltips when editing a CMakeLists.txt file, which will save you time spent outside of the IDE referencing documentation and make the process less error-prone. See the C++ Team blog post on in-editor documentation for CMake in Visual Studio for more information.

In addition, Preview 2 adds lightbulbs for missing #includes that can be installed by vcpkg, and provides package autocompletion for the CMake find_package directive.

CMake Lightbulb hints for missing #Includes

CMake Find Package Autocompletion

Clang/LLVM support: CMake integration now supports the Clang/LLVM toolchain for projects targeting Windows and/or Linux, so you can build, edit, and debug CMake projects that use Clang, MSVC, or GCC. The CMake version that ships with Visual Studio has been upgraded to 3.14 as well. This version adds built-in support for MSBuild generators targeting Visual Studio 2019 projects as well as file-based IDE integration APIs.

To learn more about these and other CMake improvements, see the C++ Team blog post Visual Studio 2019 version 16.1 Preview 2 CMake improvements.

C++ productivity improvements

C++ Template IntelliSense: The Template Bar dropdown menu is populated based on the instantiations of that template in your codebase. More details on this feature can be found in the post “C++ Template IntelliSense: Auto-populate instantiations in template bar” on the C++ Team blog.

C++ Template IntelliSense

Progress on C++20 conformance

Conformance improvements: New C++20 preview features have been added to the compiler and are available under /std:c++latest. Per P0846R0, the compiler has increased ability to find function templates via argument-dependent lookup for function call expressions with explicit template arguments. Also supported is designated initialization (P0329R4), which allows specific members to be selected in aggregate initialization, e.g. using the Type t { .member = expr } syntax.

We have also added new C++20 features to our implementation of the C++ Standard Library, including starts_with() and ends_with() for basic_string/basic_string_view, and contains() for associative containers. For more information, see the Preview 2 release notes.

Improved NuGet package debugging

Last year, we announced improved package debugging support with Symbol Server. Starting with Visual Studio version 16.1 Preview 2, debugging NuGet packages just became a whole lot simpler now that you can enable Symbol Server from the Debugging\Symbols option.

NuGet Symbol Server

Source Link now supports Windows authentication scenarios. Ultimately, using Windows authentication will allow you to use Source Link for on-premises Azure DevOps Servers (formerly, Team Foundation Server).

Based on user feedback, Visual Studio Search will now display the three most recently used actions on focus. This makes it even easier to find previously searched-for items.

Visual Studio Search Most Recently Used List

Solution view selector

The button for switching the Solution Explorer view will now consistently show you a dropdown menu of all possible views. Per your feedback, this solution removes the confusion of having the button default to toggling between Folder View and Solution View and not being clear on which solution it would open.

Solution View Selector

We have also improved the loading time for very large solutions, where the amount of improvement varies based on the size of the solution.


A number of updates to Visual Studio extensibility are included in this release, including Shared Project support and per-monitor awareness for dialogs. We’ve also eliminated the need for a .resx file and disabled synchronous auto-load. Additionally, the Visual Studio 2019 version of Microsoft.VisualStudio.SDK is now available as a NuGet package. Read all about these changes in the New features for extension authors in Visual Studio 2019 version 16.1 blog post.

Another notable extensibility update in this Preview is that project templates now support custom tags which allow them to show up in the New Project Dialog. See how to add tags in the blog post Build Visual Studio templates with tags, for efficient user search and grouping.

App Installer Templates

Over the last few releases, Visual Studio has improved the sideload packaging distribution experience for developers by introducing the App Installer file which specifies where an application is located and how it should be updated. Users who choose this method of application distribution simply share the App Installer file with their users rather than the actual app container.

The options available for use in the App Installer file are different based upon the Windows version the user is targeting. To enable maximum flexibility, Visual Studio 2019 version 16.1 allows users to define and configure the App Installer Update settings from a template Package.appinstaller.

Activate this template by right-clicking the project and selecting Add > New Item > App Installer Template.

App Installer Templates

The Package.appinstaller template file is available to edit and customize the update settings you want to use.

App Installer Template Settings

Note that once the template is added to the project, the user will no longer be able to customize update settings in the packaging wizard. All customizations must thus be edited in the template.

Use the latest features; give us feedback

To try out this preview of the latest features, either download Visual Studio 2019 version 16.1 Preview 2, update your existing preview channel installation by using the notification bell inside Visual Studio, or click Update from within the Visual Studio Installer.

We continue to value your feedback. As always, let us know of any issues you run into by using the Report a Problem tool in Visual Studio. You can also head over to the Visual Studio Developer Community to track your issues, suggest a feature, ask questions, and find answers from others. We use your feedback to continue to improve Visual Studio 2019, so thank you again on behalf of our entire team.


Discussion is closed. Login to edit/delete existing comments.

  • Hristo Hristov 0

    “designated initialization” this doesn’t seem to be supported in the IDE. Are you going to align new C++20 compiler features with the IDE support?
    Would you also consider publishing a roadmap about C++20 support. is very vague. Will there be more this year?

    • Ulzii Luvsanbat Microsoft employee 0

      Hello Hristo,
      C++20 language feature “Designated Initialization” is supported in the MSVC compiler under /std:c++latest as of VS2019 16.1 Preview 2, as you have already pointed out. The corresponding IntelliSense support for this feature will be available in the release after, VS2019 16.1 Preview 3.
      Our plan for C++20 conformance is to implement all features completely in the MSVC compiler and IDE before we create the /std:c++20 version mode. In the meantime, all features as they come online they will be available under the /std:c++latest mode. We will try our best to ensure that our MSVC and IntelliSense feature parity is same in all our public preview releases.

  • Howard Richards 0

    I’ve found preview 2 to be a lot more buggy and unstable than preview 1. I do a lot of Blazor testing and the editors for .razor files seem to be very unstable. It’s possible to crash VS2019 by just commenting out a code section. Trying to select values in intellisense sometimes overwrites the wrong bit of code.

  • Eugene Ivanoff 0

    Notification bell is empty (VS 2019 16.0.2). Manual checking for updates gives nothing. VS 2019 is really buggy. The XAML designer is buggy (for instance, it doesn’t display Ribbon from Fluent.Ribbon library). Also there’s flickering when switching between designer and XAML code.

  • Matthew Lyons 0

    VS2019 is extremely buggy.  In 16.0.2 I am experiencing an issue where I can’t open forms in the designer.  VS just crashes and restarts.  Is this fixed in this preview?  If not, is there a fix on the way?

  • basem soman 0

    thank you

  • cao changjiang 0

    Sometime it`s too later for us to find the source code until debugging.  With “ Symbol Server. ” ,if we downloaded first time,could we search the nuget package`s source code in visual studio without debugging?

  • SuperCocoLoco . 0

    Please, bring back and restore the old new project Window dialog and the Start Page in the next preview release:
    The new Project Dialog is the absolute worst and most confusing thing about about VS2019. The UX design of the new dialog is, like Sype 8, a completely unuseable and ugly nigthmare. Visual Studio users are desktop users, not tablet or mobile users, but Microsoft are obsesive creating mobile/tablet/cloud UX design for desktop computers, like Windows 8 or Windows 10.

  • David Cunningham 0

    How do i know if i have Preview 1 or 2 ?

  • gf s 0

    no more C++ 20 module support ?
    its appear At Begin VS2015,but the Support is not complete.
    There is no Intellisense for C++ module.

  • Max Karolinsky 0

    Prior to the Solution View toggle behavior change it was possible to start devenv with a /debugexe switch and then use the toggle to go between the folder view and the debugged executable view. This was useful for projects that don’t use VS solutions. Now, once you switch to the folder view there is no way to get back to the debugged executable view. Would be great if when /debugexe is specified it would work the way it used to.

Feedback usabilla icon