January 20th, 2021

Visual Studio 2019 v16.9 Preview 3 is Available Today

Jacqueline Widdis
Product Manager

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!

Author

Jacqueline Widdis
Product Manager

Jacqueline joined Microsoft as a Release Manager in April 2019 and has since moved to the Visual Studio Subscriptions team as a Product Manager with projects that span into VisualStudio.com and VS Marketplace. Coming from an educational background in networking and server administration, the move into the developer space has been an exercise in continuous learning. Because of the switch in context, she has taken on the new challenge of documenting the journey in learning the Visual Studio ...

More about author

22 comments

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

  • Natarajan Sundaresan

    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...

    Read more
  • Rocco Balzamà

    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

  • Anand Arumugam

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

  • Nils Berghs

    Will it finally have normal copy paste behavior?

  • Premek VysokyMicrosoft employee

    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?

  • Alexandros Pappas

    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

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

    • Michael Bond

      It doesn't look like they have bothered to implement it like a few other Enterprise features in .Net 5 so I wouldn't hold your breath for it.

      https://github.com/dotnet/runtime/issues/715

      There does seem to be a proof of concept workaround https://github.com/dotnet/runtime/issues/715#issuecomment-748934621 though I would personally be nervous implementing it.

      Read more
  • khuntias2002

    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

    • Savannah OstrowskiMicrosoft employee

      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.

    • Codest

      You can use vscode to write python code

  • Neill Clift

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

    • Jacqueline WiddisMicrosoft employee Author

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

      • Sven Glöckner · Edited

        The install link is only working after login

  • Mark Quennell

    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 · Edited

      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...

      Read more