Microsoft announces the release of Visual Studio 2019 version 16.10. This is the most recent version of Microsoft Visual Studio 2019 generally available as of today. Along with this, the company also announces the first preview release of Visual Studio 2019 version 16.11.
In this release of Visual Studio 2019, Microsoft focused on developer productivity and convenience. As part of this, they added around 20 new features for C++ devs, improved Git integration, improved profiling tools, and a host of new features that will improve your productivity.
Visual Studio 2019 16.10 is now generally available. It comes with new productivity enhancements for .NET developers. These include new IntelliSense features, which automate common workflow tasks, and new tools to improve the quality of testing.
There are now 20 conformance features for C++, including support for C Make preset files and improved security for remote connections. Users will also see improved Git tooling, to automate and be productive with Git workflows, and enhanced Docker and Azure tooling for seamless Azure development.
How to download the latest version of Visual Studio 2019
To download the latest version of Microsoft Visual Studio 2019, head over to our downloads page. Then select the edition of Visual Studio 2019 that you want to download. You can select between "Professional", "Enterprise", and "Community".
What's new in Visual Studio 2019 v16.10
C++
- All C++20 features are now available under the
/std:c++latest
switch. While MSVC’s implementation of the C++20 standards (as currently published by ISO) is feature complete, some key C++20 library features are expected to be amended by upcoming Defect Reports (ISO C++20 bug fixes) that may change them in an ABI-incompatible way. Please see Microsoft/STL Issue #1814 for more details.- C++20 immediate functions & const init support added in 16.10
- The final pieces of : new clocks, leap seconds, time zones, and parsing
- Implementation of for text formating
/openmp:llvm
is now available on x86 and ARM64, in addition to x64- Include directories can now be designated as external with customized compilation warning levels and code analysis settings.
- Added the
/await:strict
switch to enable C++20-style coroutines in earlier language modes. - Debugger visualization of
std::coroutine_handle<T>
now displays the original coroutine function name and signature and the current suspend point. - Added support for CMakePresets.
- You will now be required to accept or deny the host key fingerprint presented by the server when adding a new remote connection in Visual Studio.
- Added an
/external
switch to MSVC for specifying headers which should be treated as external for warning purposes.
Docker Tools improvements
- Ability to create a launch profile that configures which services to start in your Compose file.
- Ability to tag an image.
- Added a Volumes tab for containers.
- Added a Labels tab for containers.
- Added a Labels tab for images.
- Containers are now grouped by Compose project.
Editor
- For folks who want a less crowded experience, line spacing can be modified by searching for "line spacing" in Visual Studio Search (Ctrl+Q). The option is under Text Editor\General.
- Find in Files and Find all References have a control to keep results. Based on feedback from our community, we've added an option to toggle the "Keep Results" option to on by default. This option can be found by searching for "keep search results by default" in Visual Studio Search (Ctrl+Q). The option is under Environment\Find and Replace. Note that users are currently limited to 5 results for Find in Files and 5 more results for Find all References.
- A new option in Find in Files allows users to run additional searches and append those results to a previous search.
Editor Extensibility
- The behavior of the code that manages IntraTextAdornmentTags has changed. With this change, just like with any other ITagger, you must raise a tags changed event when the underlying tags change. Otherwise, your tags may never be updated.
Debugging & Diagnostics
- Diagnostic Analysis of memory dumps now includes Managed Linux core dumps.
Git Productivity
- Jump to the web with deep links to create a new pull request and view PRs on GitHub or Azure DevOps from the Git menu.
- Checkout local and remote branches with a single select from the branch picker.
- Remove items from the repository picker through the context menu.
- Turn on automatic loading of the solution when opening a Git repository through Git > Settings.
- Toggle behavior of double-clicking to check out branches from the Git Repository window through Git > Settings.
- Sync (Pull then Push) your branch with multiple remotes from the Git Changes window overflow menu.
- Customize your visible Git Changes window toolbar actions (Fetch, Pull, Push, Sync) from the overflow menu.
- Open your repository in the browser from the Git Changes window overflow menu.
- Search and checkout local and remote branches from the status bar.
- Search and switch between local Git repositories from the status bar.
- Fixed an issue where local repositories list in the Git menu wasn't loading on Visual Studio launch.
- Add nested project sub-repos to your local repositories list when opening a repository.
- Keep solution open when switching repositories through Git > Settings.
- Turn off open folder when opening repositories through Git > Settings.
- Sync your branch with the remote from the unpushed commits button in the status bar, and from the Sync command in Git Menu.
- Fetch and pull from the Git Repository window history pane even when there are no incoming commits.
- View Commit Details and the comparison of file changes embedded in the Git Repository window.
- Automatically re-connect or prompt to establish initial Azure DevOps connection when opening an Azure DevOps Git repository.
- Merge and rebase with visible branch names, replacing confusing Source / Target terminology.
- Improved performance and reliability for source control glyphs in Solution Explorer.
- Preserve incoming/outgoing sections in Git Repository window even when empty.
- Consolidated Fetch/Pull/Push dropdowns for multiple remotes in Git Changes window to a single Action menu.
.NET Productivity
- Argument completion in method calls
- EditorConfig UI
- Visually inspect and navigate the inheritance chain
- IntelliSense completion for casts, indexers, and operators
- Debugger support for Source Generators
- Code cleanup support for Visual Basic
- Edit and Continue (EnC) updates
- Remove Unused References
- Smart Break Line
- Simplify LINQ expression refactoring
- IntelliSense completion for Enum values
- IntelliSense completion mode setting
- Code style preference for new lines
- Find All References support for Source Generators
Razor (ASP.NET Core) Preview Editor
- IntelliSense completion updates
- Go to Definition support for generic components
- New code style configuration for tabs and spaces
- Razor text editor in Tools Options is now called Razor (ASP.NET Core)
Test Experience Accessibility improvements
- Console.Writeline now shows in the Test Explorer
- Test output can now preserve tags so hyperlinks and stacktrace links are navigable even from the log files.
- Log files are created for a single test result when output is over 300 characters or if there are over 10 files attached to the test result.
- Log files can also now open in preview so it’s easier to manage your tabs.
- Log files and the Test Explorer support Ctrl PgUp/PgDn for navigating the cursor and Shift+Ctrl PgUp/PgDn for selection.
- The log file editor is now using the IVsTextView interface which means it will now be able to open very large text files. This should eliminate the need for users to
Copy All
truncated logs and open them in a separate editor such as Notepad. For MSTest, we now also include a single log file that aggregates all the output instead of only having individual log files for each data row. - You can now get cross-platform code coverage at the command-line on Ubuntu and Alpine with the dotnet cli. For users interested in getting code coverage on machines targeting those platforms you can now add the same code coverage collection commands that you'd normally use on windows. See more documentation for dotnet test.
- There is now an expand all button next to the collapse all button in the Test Explorer. This command has been available through keyboard shortcuts (Ctrl+A, Ctrl+ right arrow), but more feedback indicated adding a button was worth the additional UI. As always, thank you for letting us know what you think via http://developercommunity.visualstudio.com/.
- There are also some slight changes to how the Test Explorer shows "staleness." "Staleness" is the grayed out or "faded" test results that indicate the result was not from the latest test run. If a result is not a part of the most recent test run it will appear as stale. Previously, new test discoveries (or even old test results that were rediscovered) were also shown with solid icons. This caused some confusion on why some 'Not Run' tests were faded and why others were not. This change will reduce the complexity of staleness.
- With the persisted test results feature (added in version 16.2) you can see test results from the last test run even if you've closed and re-opened Visual Studio. This helps users remember where they left off and gives more context without requiring another test run. We also modified the behavior of persisted results so they will always appear stale. This better indicates that they were not from a test run that executed during the current Visual Studio session.
Web Tools:
- Switch to V2 of API for Azure AD provisioning
- Azure App Configuration as a Connected Service now supports dynamic configuration
Windows Application Packaging Project Dependencies Tree
- Added a "Dependencies Tree" to the WAP Project
XAML Tooling Improvements
- Improved XAML IntelliSense and XAML Hot Reload for Xamarin.Forms customers
- Introduced XAML Sample Data for select ItemsControls in WPF
- Added new lightbulb for quick access to commonly edited properties
- Added new lightbulb in the XAML Editor to help create a view-model
Service Fabric Tools
- Introducing StartupServices.xml in Service Fabric Applications