Visual Studio Icon Visual Studio 2019 version 16.5 Release Notes

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

Click a button to download the latest version of Visual Studio 2019. For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Also, see instructions on how to install offline.

What's New in Visual Studio 2019 version 16.5

Visual Studio 2019 version 16.5 Releases

Visual Studio 2019 Archived Release Notes

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:

Join the Release Note Discussion

Release Notes Icon Visual Studio 2019 version 16.5.3 New release icon

released April 7, 2020

Fixed In This Release of Visual Studio 2019 version 16.5

Release Notes Icon Visual Studio 2019 version 16.5.2 New release icon

released March 31, 2020

Fixed In This Release of Visual Studio 2019 version 16.5

Release Notes Icon Visual Studio 2019 version 16.5.1 New release icon

released March 24, 2020

Fixed In This Release of Visual Studio 2019 version 16.5

Release Notes Icon Visual Studio 2019 version 16.5.0

released March 16, 2020

In This Release of Visual Studio 2019 version 16.5

Visual Studio IDE


Azure Tools


F# language and tools

  • Performance improvements for large solutions
  • Preview FSharp.Core features are now guarded by the LangVersion flag
  • Various bug fixes and enhancements

.NET Productivity




UWP/WPF Tooling


Details of What's New in Visual Studio version 16.5

Visual Studio IDE

You can now filter accounts to the specific subset of the Azure Active Directories you want to make available to Visual Studio


  • You can now decompile managed code even if you don't have the symbols, allowing you to look at code, inspect variables and set breakpoints.

  • You can now attach to processes running in Docker Windows containers via the Attach to Process dialog window.

Attach to process in Docker Windows container Enclave debugging
  • There have been several improvements to the Allocation view in the .NET Object Allocation Tracking tool. First, the backtrace view has been moved to a separate panel to more easily distinguish between allocation type and functions called. Second, the call trees in the backtrace view have been flipped to more easily diagnose what functions are allocating the most memory. Finally, icons indicating value and reference types have been added and two more icons for value and reference collections are coming soon!
Allocation View


  • C++ developers can now train IntelliCode models on their own codebases. We call this a Team Completions model because you benefit from your team's practices. Additionally, we've improved IntelliCode suggestions for member variables.

  • IntelliSense now displays more readable type names when dealing with the Standard Library.

  • We've added the ability to toggle whether Enter, Space, and Tab function as commit characters, and to toggle whether Tab is used to Insert Snippet. Find these settings under Tools > Options > Text Editor > C/C++ > Advanced > IntelliSense. Disabling autocomplete options

  • You can now leverage Visual Studio's native support for WSL when separating your build system from your remote deploy system. This allows you to build natively on WSL and deploy the build artifacts to a second remote system for debugging. This workflow is supported by both CMake projects and MSBuild-based Linux projects.

  • You are now able to interact with your stored remote connections over the command line. This is useful for tasks such as provisioning a new development machine or setting up Visual Studio in continuous integration. C++ Connection Manager

  • Visual Studio now supports FIPS 140-2 compliance mode when developing C++ applications that target a remote Linux system.

  • The source file copy for CMake projects targeting a remote Linux system has been optimized. Visual Studio now keeps a "fingerprint file" of the last set of sources copied remotely and optimizes behavior based on the number of files that have changed.

  • Code navigation features such as Go To Definition and Find All References are now supported for functions, variables, and targets in CMake script files. Language services for CMake scripts

  • Add, remove, and rename source files and targets in your CMake projects from the IDE without manually editing your CMake scripts. When you add or remove files with the Solution Explorer, Visual Studio will automatically edit your CMake project. You can also add, remove, and rename the project's targets from the Solution Explorer's Targets View. 'Add' menu in CMake Targets View

F# language and tools

The primary focus of this release has been improving the performance and scalability of large F# codebases in Visual Studio. This work was influenced by working directly with customers who have very large codebases. The performance work is still ongoing, but if you have a medium-to-large sized codebase, you should see reduced memory usage.

Beyond performance enhancements, this release includes a variety of other fixes, many of which were contributed by our wonderful F# OSS community.

F# language

Several F# preview language features have been merged. You can try them out by setting your LangVersion to preview in your project file.

F# compiler

F# core library

F# tools for Visual Studio

F# open source development experience

.NET Productivity

You can now turn a fragment of code from an existing method into a local function. Highlight the code you want extracted. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Extract local function.

Extract local function

You can now make members static. Place your cursor on the member name. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Make static.

Make members static

You can now simplify string interpolations when possible. Place your cursor on the string interpolation. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Simplify interpolation.


You now have the option to exclude generated files or folders when running analyzers. Create an EditorConfig file and mark the required files or folders as generated with the following syntax:

EditorConfig option to exclude generated files or folders

Analyzer authors can now distribute custom code refactorings as a NuGet package when previously it could only be distributed as a VSIX.


You can now profile a .NET Core test. Note that the prerequisites for profiling are that your .NET Core projects are configured to generate Full PDB’s. It is also recommended that you upgrade to minimum version of 16.4 for the Microsoft.Test.SDK. This will allow you to profile tests in both x86 and x64 architecture settings. To profile a test, select “Profile” from the context menu in the Test Explorer. Test profiling is supported through static instrumentation and Performance Explorer (.vsp) document in Visual Studio.

The default setting for processor architecture for tests now has a third option ‘Auto’ in addition to the x64 and x86 options. ‘Auto’ supports different default architectures for tests targeting .NET Framework vs. .NET Core tests. .NET Framework tests default to x86 test execution and .NET Core tests default to x64. ‘Auto’ allows the architecture choice to be left unset by the user and supports different defaults for these frameworks. Previously x86 was the default in all cases, however .NET Core tests were introduced defaulting to x64 and thus the need for the default setting to diverge.

This release contains significant perf improvements in test discovery and execution, especially in large solutions with lots of tests. We encourage you to run your own benchmarks to evaluate how valuable this is. With the Roslyn code base (the C# and Visual Basic compiler), the test explorer reduced memory consumption from 50 to 60% and cut load time by up to 60%.

Better diagnostics are now available for Live Unit Testing. When a Live Unit Testing build fails additional diagnostic info will print to the output including MSBuild logs. It will also report cases where the output path is hardcoded.


VS Search now supports the ability to search for types and members in TypeScript and JavaScript files. There is also support for searching JavaScript blocks in open markup files (i.e. HTML, CSHTML)

Visual Studio now supports ESLint for Typescript files: there is a global configuration with a set of recommended rules or ESLint can be set up locally to a project with full customization. More information and instructions available on our GitHub page


  • With XAML Hot Reload, you can now see your changes updated on multiple Xamarin.Forms targets at once. Debug your app with multiple startup projects, change your XAML, and hit Save to show the changes on Android and iOS simultaneously.

  • You can now see a hierarchy of your Xamarin.Forms controls in the Document Outline pane. On Windows, it can be opened with Ctrl+Alt+T (View > Other Windows > Document Outline). On Mac, you can open it via Views > Pads > Document Outline.

  • You can now apply Android resource changes at runtime using Android Apply Changes. This feature allows you to quickly see changes made to your Android resource files (XML layouts, drawables, etc) on an Android device or emulator without requiring the application to be restarted.

Android Apply Changes
  • You can now generate your own custom profiles when using startup tracing in your Android application. This provides you an even more performant startup experience with a minimal increase to APK size.
  • You can now generate Xamarin.Android bindings against Kotlin libraries.
  • You can now use the Google Manifest Merger when merging AndroidManifest.xml files in your Android projects. This allows you to customize how each manifest and its contents will be merged. For more details on rules that can be applied, please see Merge multiple manifest files.
  • You can now opt-into a new option which will automatically reload all opened designer surfaces when any modification is done to your codebase.
Custom Control Quick Changes for Android Layouts
  • Take advantage of consolidated editor functionality to offer more responsive and precise IntelliSense. This includes many changes such as improved completion for common XML constructions such as attribute quotes and updating end tag names automatically. You can control these behaviors via Android XML editor preferences:
Android XML IntelliSense Options

UWP/WPF Tooling

  • Dragging an image from your project solution explorer into the XAML editor will now generate a XAML image tag with the Source property set to the correct image path.

  • Changing “Artboard Background” color for the XAML Designer now works with WPF .NET Core projects (Options > Environment > Fonts and Colors, then change to XAML Designer settings and update Artboard Background)

  • XAML Designer now supports loading .NET Core 3.x Projects that include PublishSingleFile, RuntimeIdenfier and PublishTrimmed settings in their project file (csproj). Note that including these settings slows down designer performance.

Top Issues From Developer Community

Known Issues

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

Visual Studio 2019 Known Issues


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.


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