Visual Studio Icon Visual Studio 2019 v16.9 Preview Release Notes



Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release Known Issues


Important

This release is not "go-live" and not intended for use on production computers or for creating production code. For instructions on installing and updating Visual Studio 2019, see this documentation on updating Visual Studio 2019 to the most recent release.

Download Community Button Download Professional Button Download Preview Button


What's New in Visual Studio 2019

Support Timeframe

Visual Studio 2019 version 16.9 will be the fourth supported servicing baseline for Visual Studio 2019. Enterprise and Professional customers needing to adopt a long term stable and secure development environment are encouraged to standardize on this version.  As explained in more detail in our lifecycle and support policy, version 16.9 will be supported with fixes and security updates for one year after the release of the next servicing baseline.

Additionally, once version 16.9 is released, version 16.7, which was the most recent servicing baseline, will be supported for an additional 12 months and will go out of support in early 2022, a year after 16.9 ships. Once version 16.9 ships, versions 16.8 will no longer be under support.

For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.

Visual Studio 2019 Preview Releases

Visual Studio 2019 Blog

The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Release Notes Icon Visual Studio 2019 version 16.9 Preview 3 New release icon

released January 20, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.9 Preview 3

C++

  • You can now target the LLVM version of the OpenMP runtime with the new CL switch /openmp:llvm. This adds support for the lastprivate clause on #pragma omp sections and unsigned index variables in parallel for loops. The /openmp:llvm switch is currently only available for the amd64 target and is still experimental.
  • Visual Studio CMake projects now have first class support for remote Windows development. This includes configuring a CMake project to target Windows ARM64, deploying the project to a remote Windows machine, and debugging the project on a remote Windows machine from Visual Studio.
  • The version of Ninja shipped with Visual Studio on Windows has been updated to version 1.10. Please see the Ninja 1.10 release notes for details on what is included.
  • The version of CMake shipped with Visual Studio has been updated to version 3.19. Please see the CMake 3.19 release notes for details on what is included.
  • Marked many lock/guard types in the STL as nodiscard: https://github.com/microsoft/STL/pull/1495
  • IntelliSense:
  • Address Sanitizer:
    • Expanded RtlAllocateHeap support, fixed a compatibility issue with RtlCreateHeap and RtlAllocateHeap interceptors when creating executable memory pools.
    • Added support for the legacy GlobalAlloc and LocalAlloc family of memory functions. You can enable these interceptors with ASAN_OPTIONS=windows_hook_legacy_allocators=true.
    • Updated error messages for shadow memory interleaving and interception failure to make problems and resolutions explicit.
    • The IDE integration can now handle the complete collection of exceptions which ASan can report.
    • The compiler and linker will suggest emitting debug information if they detect you're building with ASan but not emitting debug information

Javascript/TypeScript

  • There is now support for Edge Chromium based WebView2 JavaScript/TypeScript debugging for applications such as WPF, WinForms and WinUI 3 projects. This can be enabled by selecting the JavaScript debugger from the Project Properties dialog box. Details on how to get started to can be found here
  • Test Explorer : There is now support for running Karma, Jasmine, Mocha, Jest and Tape tests in all project types, including .NET and .NET Core

Debugger

  • Added a new Auto Analyzer that inspects threads for deadlocks.
  • Visual Studio now filters out redundant repeating frames from the call stack when the debugger stops on a StackOverflow Exception. It is now possible to see the base of the stack where an infinite recursion originated, which hopefully makes it easier to investigate these kinds of bugs.

.NET Productivity

  • There is now IntelliSense completion for preprocessor symbols.
  • Solution Explorer now displays the new .NET 5.0 Source Generators.
  • Go To All won't display duplicate results across netcoreapp3.1 and netcoreapp2.0.
  • Quick Info now displays compiler warning IDs or numbers for suppressions.

Test Explorer audio cues and accessibility updates

  • You can now configure audio cues with the Test Explorer, the Group By menu is more accessible for screen readers, and viewing long test output is easier with clickable links opening log files directly.

Web Tools

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

  • Improved MVVM Support: In this release, we introduced a new dialog that allows you to quickly create a view-model and declare it as the DataContext for the XAML page. Setting the DataContext will enhance IntelliSense when working with data bindings �� such as the ability to create properties in the view-model, Go To Definition, and completions.
Improved MVVM Support
  • A lightbulb item within the XAML editor now allows you to create a new ICommand property in your view-model. When the editor is unable to resolve a binding for a Command, this feature looks for ICommand implementations within, or referenced by, your project. It then allows you to quickly generate a field, command, and execute method without leaving the XAML editor.

Issues Addressed in this Release

From Developer Community

Details of What's New in Visual Studio 2019 version 16.9 Preview 3

.NET Productivity

  • There is now IntelliSense completion for preprocessor symbols. Start typing the #if directive to see the new completion options for symbols that are currently defined in scope.
IntelliSense completion for preprocessor symbols
IntelliSense completion for preprocessor symbols
  • Solution Explorer now displays the new .NET 5.0 Source Generators underneath the Analyzer node so you can easily navigate and view the generated code.
Source Generators node in Solution Explorer
Source Generators node in Solution Explorer
  • The Go To All window will not display duplicate results across netcoreapp3.1 and netcoreapp2.0 as well as results for partial types that exist only to wrap another nested type. This will help declutter the results so you can easily find and navigate to code. The results also now include the filename for partial symbols.
Go To All will not display duplicate results across netcoreapp3.1 and netcoreapp2.0
Go To All will not display duplicate results across netcoreapp3.1 and netcoreapp2.0
  • Quick Info now displays compiler warning IDs or numbers for suppressions. Hover your cursor over the warning IDs or numbers to view Quick Info for the diagnostic ID.
Quick Info on compiler warning IDs or numbers for suppressions
Quick Info on compiler warning IDs or numbers for suppressions

Thank You

Last but certainly not least, a big Thank You to the following people who contributed this month to .NET Productivity (a.k.a. Roslyn):

Web Tools

Adding App Configuration as a connected service automatically connects your application to your Azure App Configuration Resource. There is now support for generating code automatically for .NET Core Console projects, as well as adding NuGet packages automatically for .NET Framework projects. To integrate this Connected Service into your app, click on Connected Services and add Azure App Configuration as a Service Dependency.

Add App Config to Connected Services
Adding App Configuration as a Connected Service

Test Explorer audio cues and accessibility updates

  • The Test Explorer can now play a sound when a test run completes. You can select two sounds, one for indicating the test run succeeded with all passing tests and a second sound to indicate the test run completed with at least one failing test. This feature started as a user request and improves the accessibility of the Test Explorer by adding an audio cue which is useful for developers who have a visual impairment. The sound selection uses the default Windows 10 sound dialog where you can also select from the preset sounds or any audio file from your computer!
  • The Group By in the Test Explorer is now more accessible using more concise phrases and word order when read by a screen reader.
  • Viewing long test output from the test details pane in the Test Explorer is now easier with a link to open the log file directly instead of the special document control.

Release Notes Icon Visual Studio 2019 version 16.9 Preview 2

released December 08, 2020

Summary of What's New in this Release of Visual Studio 2019 version 16.9 Preview 2

Git Productivity

  • Commit changes with the keyboard shortcut Ctrl+Enter

C++

  • MSVC now determines the correct address sanitizer runtimes required for your binaries. Your Visual Studio project will automatically get the new changes. When using address sanitizer on the command line, you now only need to pass /fsanitize=address to the compiler.
  • Visual Studio's Connection Manager now supports private keys using the ECDSA public key algorithm.
  • Updated the versions of LLVM and Clang shipped in our installer to v11. Read the release notes for LLVM and Clang for more information.
  • Visual Studio will now use CMake variables from toolchain files to configure IntelliSense. This will provide a better experience for embedded and Android development.

.NET Productivity

  • Using directives will now automatically get added when copying and pasting types to a new file.
  • IntelliSense completion will now automatically insert a semicolon as a commit character for object creation and method completion.
  • Semantic colorization for C# 9.0 records.
  • Refactoring that removes unnecessary discards.
  • Refactoring that converts a verbatim and regular string to an interpolated string preserving curly braces that were intended to go in the output.
  • Code fix in Visual Basic that removes the shared keyword when you convert methods that are shared to a module.

.NET Web Tools

Web Tools

  • Manage your application's configuration settings and feature flags by integrating Azure App Configuration as a Connected Service

Visual Studio Installer

  • The Visual Studio Installer no longer elevates on launch
  • The Visual Studio Installer now supports HDR displays
  • The Visual Studio Installer supports the Navigator screen reader
  • Installer updates have been streamlined into the Visual Studio update
  • The Visual Studio Installer adds dark theme support

Issues Addressed in this Release

  • Fix for an intermittent crash in Visual Studio while using WinForms .NET Core designer.
  • Fix Push from Manage Branches page when there is no Git remote tracking branch.

Details of What's New in Visual Studio 2019 version 16.9 Preview 2

Git Productivity

  • Commit changes with the keyboard shortcut Ctrl+Enter
Ctrl+Enter to Commit
Commit changes with Ctrl+Enter

Test Experience

  • Added support for collecting code coverage for .NET Core test projects that use Fakes.
  • Reduced time needed to merge multiple code coverage reports.

.NET Productivity

  • Using directives will now automatically get added when copying and pasting types to a new file. You will first need to turn this option on in Tools > Options > Text Editor > C# or Basic > Advanced and select Add missing using directives on paste.
Add missing using directives on paste
Add missing using directives on paste
  • There is now IntelliSense completion that automatically inserts a semicolon as a commit character for object creation and method completion.
Method call completion
Method call completion
  • There is now semantic colorization for C# 9.0 records. You can customize colors in Tools > Options > Environment > Fonts and Colors. In Display items scroll to User Types – Records and select the color that you would like to apply to records.
Semantic colorization for records
Semantic colorization for records
  • In C# 9.0 discards are unnecessary in certain pattern matching cases. We now fade unnecessary discards and offer a code fix to remove them. Place your cursor on the faded discard. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Remove unnecessary discard.
Remove unnecessary discard
Remove unnecessary discard
  • There is now a refactoring that converts a verbatim string and a regular string to an interpolated string that will preserve curly braces that were intended to go in the output. This refactoring is not offered if the string is assigned to a constant. Place your cursor on the string. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Convert to interpolated string.
Convert to an interpolated string that will preserve curly braces
Convert to an interpolated string that will preserve curly braces
  • There is now a code fix in Visual Basic that removes the shared keyword when you convert methods that are shared to a module.

Thank You

Last but certainly not least, a big Thank You to the following people who contributed this month to .NET Productivity (a.k.a. Roslyn):

IntelliCode

  • IntelliCode now provides repeated edit suggestions directly within the IntelliSense completions list. You can view the Preview of the suggested change, apply at that location or ignore suggestions like these directly from the completion item. Learn more about IntelliCode suggestions.

.NET Web Tools

  • Deploy your Steeltoe applications to Azure Spring Cloud using Visual Studio Publish (e.g. right-click > Publish in Solution Explorer). If you are not seeing the option, make sure your project includes the NuGet package Microsoft.Azure.SpringCloud.Client version 1.0.0-preview.1 or later.
Deploy your Steeltoe applications to Azure Spring Cloud
Deploy your Steeltoe applications to Azure Spring Cloud

Web Tools

  • The Connected Services tab now supports Azure App Configuration. App Configuration lets you centrally manage application settings and feature flags. When you add this service dependency, your code is automatically updated to connect to your App Configuration resource. This includes installing the most up to date NuGet Packages and storing your secrets locally or in Key Vault.
Manage your configurations with Azure App Configuration
Manage your configurations with the Azure App Configuration Service Connection

Visual Studio Installer

The Visual Studio installer has incorporated several new features in response to customer requests.

Many users now use the installer to identify, launch, and manage multiple copies of Visual Studio. To aid this use pattern, the Visual Studio installer no longer requires elevation on launch and only requires elevation to make changes to Visual Studio and the machine. Other activities, like exporting install configurations, navigating news, and viewing update details no longer require the user to elevate first.

Earlier versions of the installer would occasionally ask users to take an additional step to update the installer. With this update, required installer updates are now handled as part of the installation operation, removing the extra step.

The installer now adds a dark mode theme selection. Users can changing the theme of the installer via the sun / moon (☼ / ☽) button in the title bar. Updates started from within the Visual Studio IDE will use the current theme selection of Visual Studio.

VS Installer with dark theme and inline installer update
VS Installer with dark theme and inline installer update

From Developer Community


Release Notes Icon Visual Studio 2019 version 16.9 Preview 1

released November 10, 2020

Summary of What's New in this Release of Visual Studio 2019 version 16.9 Preview 1

Git Productivity

  • Push all tags from the Git Changes window

.NET Productivity

  • A refactoring that suggests using new(…) in non-contentious scenarios
  • A code fix that removes redundant equality expressions for both C# and Visual Basic
  • The .NET Code Style (IDE) analyzers can now be enforced on build
  • The Syntax Visualizer shows the current foreground color for enhanced colors
  • A new tooltip when hovering over the diagnostic ID for pragma warnings
  • When you type the return key from within a comment the new line is now automatically commented out
  • Inline parameter name hints enhancements

C++

  • Implementation of the More Constexpr Containers proposal, which allows destructors and new expressions to be constexpr. This paves the way for utilities like constexpr std::vector and std::string.
  • Extended support for C++20 modules IntelliSense, including Go To Definition, Go To Module, and member completion.

Debugger

  • Added a new Auto Analyzer that inspects the .NET Core Finalizer queue and detects potentially blocking objects.

.NET

  • .NET Core Debugging with WSL 2

Experimental Razor Editor Updates

  • HTML and C# semantic colorization
  • Renames of C# symbols reflected in closed Razor files
  • More C# light bulbs in Razor files
  • Further improvements to mixed content formatting in Razor files

Details of What's New in Visual Studio 2019 version 16.9 Preview 1

Git Productivity

  • Push all tags from the Git Changes window.
Push all Tags
Push all tags to your remote

.NET Productivity

  • There is now a refactoring that suggests using new(…) in non-contentious scenarios. Place your cursor on the field declaration. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Use ‘new(…)’.
Use new(...) refactoring
Use new(...) refactoring
  • There is now a code fix that removes redundant equality expressions for both C# and Visual Basic. Place your cursor on the redundant equality expression. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Remove redundant equality.
Remove redundant equality expressions code fix
Remove redundant equality expressions code fix
  • The .NET Code Style (IDE) analyzers can now be enforced on build. You can either install the .NET Code Style analyzers as a NuGet package for C# and Visual Basic or you can enable them in Project Properties. To access the Project Properties right-click on a project within Solution Explorer and select Properties. Next, select the Code Analysis tab where you can select Enforce CodeStyle on build (experimental).
Project Properties window to enable .NET Code Style Analyzers
Project Properties window to enable .NET Code Style Analyzers
  • The Syntax Visualizer (installed with the .NET Compiler Platform SDK) now shows the current foreground color for enhanced colors. Simply use the visualizer to navigate to the text you want to change colors for, or select in the editor, and then click on the classified color to change it.
Syntax Visualizer Colorization
Syntax Visualizer Colorization
  • There is now a tooltip when hovering over the diagnostic ID for pragma warnings. The diagnostic tooltip also has a clickable link that navigates to the documentation.
Diagnostic Tooltip for Pragma Warnings
Diagnostic Tooltip for Pragma Warnings
  • When you type the return key from within a comment you may notice that the new line is now automatically commented out. This is a new option that is on by default. To prevent the new line from automatically being commented out, go to Tools > Options > Text Editor > C# or Basic > Advanced and uncheck Insert // at the start of new lines when writing // comments.

In 16.8 Preview 2 we added inline parameter name hints that inserts adornments for literals, casted literals, and object instantiations prior to each argument in function calls. In this release we added the following enhancements:

  • More customization options for the types of adornments you would like inserted.
  • Inline type hints for variables with inferred types and lambda parameter types.
  • An option to disable inline parameter name hints when parameter names match the method’s intent and when parameter names differ only by suffix.

XAML Tools (WPF, UWP & Xamarin.Forms)

XAML Tools (WPF, UWP & Xamarin.Forms)

  • Additional support for more WinUI 3.0 tooling is now available: In this release we have enabled XAML Hot Reload, Live Visual Tree, Live Property Explorer and IntelliSense support for developers building apps using the new WinUI 3.0 preview 3 or newer. Please note that XAML Designer is not yet available and is a known limitation. To learn more about WinUI 3.0 see the documentation and to provide feedback visit the Windows UI XAML GitHub repo.

  • XAML Designer Suggested Actions continues to be available in this release as an early preview. This feature enables easy access to common properties when a control is selected within the XAML Designer. To use this feature first enable it through Options > Preview Features > XAML Suggested Actions. Once enabled click on a supported control and use the lightbulb to expand and interact with the Suggestion Actions UI. In this release supported controls include:

    • For UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock
    • For WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox.

    This feature is available for UWP, WPF .NET Core and WPF .NET Framework (with enabled “New WPF XAML Designer for .NET Framework” feature flag) applications and does not support extensibility, nor is it feature complete.

XAML Suggested Actions
XAML Suggested Actions
  • XAML Suggested Actions - Extensibility: We've also introduced extensibility for 'Suggested Actions'. You can now customize and build your own suggestion dialog for your controls. For more details see our documentation in GitHub

  • The New WPF XAML Designer for .NET Framework Projects: Our new XAML Designer for .NET Framework projects continues to be available for early preview. This brings the same designer and extensibility support available for WPF .NET Core developers to WPF .NET Framework. Benefits of this improved XAML designer includes faster load performance, 64-bit configuration support (custom controls would load normally just like they do in x86 configuration), improved stability and new features such as Suggested Actions.

    • To get started, go to Options > Preview Features, select “New WPF XAML Designer for .NET Framework” and restart Visual Studio. This feature is only available in the Preview channel for early testing; its final release details have not yet been determined. We encourage all WPF .NET Framework customers to give this designer a try and report any issues you encounter through the VS Feedback Hub.

.NET

  • .NET Core Debugging with WSL 2 lets you run and debug your .NET Core console and web applications in WSL 2 from Visual Studio. This allows Windows developers targeting Linux production environments to have a higher fidelity local debugging experience.
.NET Core Debugging with WSL 2
.NET Core Debugging with WSL 2

Experimental Razor Editor Updates

  • HTML and C# semantic colorization
  • Renames of C# symbols reflected in closed Razor files
  • More C# light bulbs in Razor files:
    • Add DebuggerDisplay attribute
    • Create and assign property
    • Create and assign field
    • Implement interface or abstract class, including support for "with pattern", i.e. "Implement interface with Dispose pattern"
    • Generate Equals, Hashcode, Constructor
  • Add null check & Add all null checks for parameters
  • Further improvements to mixed content formatting in Razor files

To enable the experimental Razor editor, go to Tools > Options > Environment > Preview Features, select Enable experimental Razor editor, and then restart Visual Studio.

From Developer Community


Known Issues

See all open issues and available workarounds in Visual Studio 2019 by following the below link.


Feedback and suggestions

We would love to hear from you! For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. The Feedback Icon icon is located in the upper right-hand corner. You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. You can also get free installation help through our Live Chat support.


Blogs

Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Visual Studio 2019 Release Notes History

For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


Top of Page