Visual Studio 2019 v16.9 Preview 3 is Available Today

Jacqueline Widdis

First of all, Happy New Year! We hope everyone had a safe and enjoyable time ushering in 2021. As a team, we are looking ahead with strong optimism for what is coming this year. While we work on planning our next series of releases, we are extremely excited for what we hope to deliver to the developer community as a whole. Closer to the heart, we cannot wait to add more value to those of you who turn to Visual Studio as a primary productivity tool.

Today the Visual Studio team welcomes Visual Studio 2019 v16.9 Preview 3 as our first preview release of 2021. We hope the new additions to C++, .NET Productivity, Test Explorer, Accessibility, and XAML Tools will please you. As you download our latest version, we hope this summary of features will build anticipation to try each of them.

Meanwhile, we encourage you submit any feedback or suggestions to our thriving online Developer Community.

What’s New in this Release?

C++

Opening this section, we are excited to mention additional command line tools. First, you can now target the LLVM version of the OPenMP runtime with the command line switch /openmp:llvm. Included in this item is added support for the lastprivate clause on #pragma omp sections and unsigned index variables in parallel for loops. Please keep in mind this switch is currently only available for the AMD64 target, and we do still consider this experimental.

Next, Visual Studio CMake projects now have first class support for remote Windows development. This includes configuring a CMake project to target Windows ARM64. Subsequently, you can also deploy and debug the project on a remote Windows machine from Visual Studio 2019.

Speaking of CMake, we have shipped binaries for Ninja and CMake with Visual Studio for quite some time. As promised we continue to upgrade them so you can make the most of recent versions of those tools. In this release, we have upgraded Ninja to v1.10 and CMake to v3.19.

Finally, we have marked many of the lock and guard types in our Standard Template Library (STL) implementation as nodiscard. This gives you better compiler errors if you use them incorrectly. You can take a look at the details in this pull request on GitHub.

IntelliSense in C++

Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so keep them coming! While we were working on stability, we also added extra functionality. Consequently, we can highlight Go-to-definition on module imports, indexing support for export {…}, and more accurate module reference for modules with identical names.

As implementation of a top-voted Developer Community suggestion ticket, we added completion for make_unique, make_shared, emplace and emplace_back. These provide completion based on the specified type parameter.

Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3
Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3

We have also added improved language compliance of C++ by implementing some standards defects reports.

Address Sanitizer

After announcing ASan support for Windows last year, we have been continuously working on the experience and implementation.

The IDE integration for ASan-reported exceptions(vcasan.lib) now handles the complete collection of reportable ASan exceptions. Like other ASan libraries, this specific library, vcasan, is found automatically when you pass the /fsanitize=address. The compiler and linker will also suggest emitting debug information if they detect you’re building with ASan but not receiving debug information. As we approach our Visual Studio 2019 v16.9 generally available release, more details will be provided in the full ASan documentation.

As a final point, we have made some extensions and fixes to the Windows support.

Use Audio Cues with Test Explorer

We love to implement user suggestions, and this is one of them! Test Explorer can now play a customizable sound when a test run completes. You can select two different sounds. The first one is for indicating the test run succeeded with passing test results. The second chosen sound would indicate a test with at least one failure. What makes this even more exciting is the added accessibility of the Test Explorer by adding an audio cue for developers with visual impairments.

When you first use this feature, the sound selection is the default Windows 10 sound dialog which has many preset sounds. Rest assured, you can use any audio file from your computer! We had some fun with this, and hope you do too.

The Group By menu has also been made friendlier with screen readers as we have changed it to more concise wording and more efficient word order.

High Contrast Improvement

Speaking of accessibility, as part of the Visual Studio team’s commitment to such experiences, the IDE has the capability to detect if you have High Contrast settings enabled in Windows. If those options are enabled, Visual Studio 2019 will honor those settings.

Again, this suggestion has come from user advice that the Visual Studio themes should meet their needs better than the ones provided by the operating system. We have added a checkbox to give you control over whether you want Visual Studio to use Windows High Contrast mode.

To activate this feature, go to Tools > Options. Note the new option Use Windows High Contrast Settings. When this option is checked, the default setting will match the detected Windows High Contrast settings. If this box remains unchecked, you are free to choose any of the themes included with Visual Studio 2019. This theme choice will continue to persist even if Windows reports that a High Contrast color theme is in use.

.NET Productivity

The .NET Productivity team has been busy adding additional IntelliSense improvements. This release, we can highlight completion for preprocessor symbols. To see this in action, start typing the #if directive to see the new completion options available for symbols currently defined in scope.

IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3
IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3

You may notice a new change in Solution Explorer as it will now display the new .NET 5.0 Source Generators underneath the Analyzer node. This will allow you to easily navigate and view the generated code.

.NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3
.NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3

 

Go To All will no longer display duplicate results across netcoreapp3.1 and netcoreapp2.0 as well as results for partial types that exist to wrap another nested type. This will help declutter the results so you can easily find and navigate through your code. The results also now include the filename for partial symbols.

Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3
Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3

XAML Tools (WPF, WinUI, UWP, & Xamarin.Forms)

As a quick highlight to end out this post, we have expanded MVVM Tooling for XAML. The functionality is the introduction of lightbulbs to generate commands and new view-models.

MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3
MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3

Happy New Year & Happy Developing

We sincerely hope these new features and additional stability give you reason to smile this new year. Thank you for your constant engagement in our virtual Developer Community. This is the best place to submit feedback and suggestions as we have teams looking out for new and up-voted issues.

Wrapping up this post, we wish you the happiest in 2021 and hope it is your most productive development year yet!

22 comments

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

  • Christophe MOMMER 0

    Nice version with a bunch of intersting stuff.

    Any news about the next VS Version (maybe VS 2021 ?)
    Or VS 2019 will be updated constantly and there will not be new version of VS ?

    • Serhiy Malokhatko 0

      Honestly, what’s wrong with the VS2019? Are you expecting any new features?
      We really don’t want to spend extra money on just the next version.

  • Max Mustermueller 0

    Honestly I would love to see two things:

    1. Using machine learning to analyze and detect performance improvements in your code. It can start with some really easy stuff like using CHAR overload instead of string if its actually just a char. string.IndexOf(“a”) => string.IndexOf(‘a’). And then move over to more complex scenarios. You introduced intellisense suggestions based on machine learning for our projects, great. Why not expanding the machine learning thing?!

    2. Create and run a project that is not (permanently) saved on your disk. Too often I’ve only created a console/Winforms/WPF project to test some small stuff and then I had to delete it from hard drive. Why not “create” a project that is temporarily stored and when you close it, it’s automatically deleted from disk?! Maybe add a checkbox on create project dialog “Save project”?

  • Mark Quennell 0

    When you say “You may notice a new change in Solution Explorer as it will now display the new .NET 5.0 Source Generators underneath the Analyzer node.”, what conditions make this happen?

    I’m running the new preview and looking at my Analyzers list, I still just get the basic generator name, with no generated content beneath it…

    • Mika DumontMicrosoft employee 0

      Hi Mark! This is a new C# compiler feature that lets C# developers inspect user code and generate new C# source files that can be added to a compilation. You may not notice it because of the following open bugs:
      1. If you have a multi-targeting project, it only appears under one which you can track here.
      2. In certain cases where you name your project in certain ways, it won’t appear which you can track here.

  • Neill Clift 0

    How do you install? Link in this page just creates a new window to the same page for me!

    • Jacqueline WiddisMicrosoft employee 0

      Neill,
      Thank you for this good catch. It is working now.
      -Jacqueline

      • Sven Glöckner 0

        The install link is only working after login

  • khuntias2002 0

    Thank You Microsoft for Visual Studio 2019.

    Any news about Python 3.8 support in Visual Studio. It would be great to use Visual Studio as a Python IDE

    • Codest 0

      You can use vscode to write python code

    • Savannah OstrowskiMicrosoft employee 0

      Python 3.8 is not planned for Visual Studio 2019 and is planned to be supported in the next major release of Visual Studio but we don’t have details to share on that release yet.

  • Mike-E 0

    FWIW 16.9-preview3 is night and day difference for .razor file development. If you are a Blazor developer struggling with 16.8 (OutOfMemoryExceptions, etc), give 16.9 a whirl. Additionally, it looks like 16.9-preview4 will have even better improvements:

    https://github.com/dotnet/aspnetcore-tooling/commit/2ef66171463133de75c3f5b3300e73abe8b50c13

    Thank you for all your efforts out there, team!

  • Alexandros Pappas 0

    We have a lot of business logic in .NET 4.0 which reads a message from an IBM MQ, does some processing, and writes to the database all in one transaction (coordinated by MSDTC). Is there some way to do this in .NET 5? As far as I know, .NET 5 does not support distributed transactions.

    • Immo LandwerthMicrosoft employee 0

      We have no support to interact with MSDTC on .NET Core and there are no plans to add it.

  • Premek VysokyMicrosoft employee 0

    I was waiting for the de-clutter of multiple targets for so long, thanks!

    However, can you also do the same for `Ctrl+F12` – Go To Implementation?
    So that navigating through the codebase is fast too?

  • Nils Berghs 0

    Will it finally have normal copy paste behavior?

  • Anand Arumugam 0

    How can I “upgrade” my existing VS2019 16.8.6 to this preview? Is it possible? Or should I do a fresh install?

  • Rocco Balzamà 0

    Good morning,
    we are very interested in new developments in VisualStudio 2019,
    but before making a purchase, it would be possible to know when and if the new version “VisualStudio 2021” will be released
    Thanks

  • Natarajan Sundaresan 0

    I just downloaded vs 2019 community and try to generate Controller/views(with strong model) after creating EDM with (EF6 or EF5). but I keep getting following error Package EntityFramework 6.1.3 is not found in the following primary sources(s) C:\Program Files (x86)\Microsoft SDKs\NuGetPackages’ First under this source directory i see versions 6.0.0, 6.1.3, 6.2.0. Able to install only 6.2.0 or 5.0.0 while creating the model (could not install any of the entity framework model using the tools-> nuGet package manger -> nuget solution). not able to locate anywhere in the configuration for the T4/code generation to use the entity framework 6.1.3. version. with code generation strategy for legacy object context works). try to create controller and view together or first create controller first and then add action and view latter. both ways getting the same error.
    please help how i can change the version 6.1.3 to the version that is installed for the project or where should i copy the entityframework files so that code generation (with T4) can see the entityframework version.

Feedback usabilla icon