Share via


2019Logo Visual Studio 2019 version 16.10 Release Notes



Developer Community | System Requirements | Compatibility | Distributable Code | Release History | License Terms | Blogs | Whats New in Visual Studio Docs


Note

This is not the latest version of Visual Studio. To download the latest release, please visit the Visual Studio site.



What's New in Visual Studio 2019 version 16.10

Support Timeframe

This version is now out of support. For more information about Visual Studio support, please review the Support Policy for Visual Studio 2019.

Refer to the latest version of the release notes or visit the Visual Studio site to download the latest supported version of Visual Studio 2019.

Visual Studio 2019 version 16.10 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:


16.10.5 Visual Studio 2019 version 16.10.5

released August 10, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.5

This version of Visual Studio 2019 is only available through Windows Software Update Service (WSUS).

Top Issues Fixed in this Release

  • The iOS Remoted Simulator will now work properly with paired Mac devices that have Xcode 12.4 or 12.5 installed. The following Xcode simulator features are not available when paired to Mac devices with Xcode 12.4, or higher, installed:
    • Simulated memory warning
    • Simulated locations

Security Advisory Notice

CVE-2021-26423 .NET Core Denial of Service Vulnerability

A denial of service vulnerability exists where .NET (Core) server applications providing WebSocket endpoints could be tricked into endlessly looping while trying to read a single WebSocket frame.

CVE-2021-34485 .NET Core Information Disclosure Vulnerability

An information disclosure vulnerability exists when dumps created by the tool to collect crash dumps and dumps on demand are created with global read permissions on Linux and macOS.

CVE-2021-34532 ASP.NET Core Information Disclosure Vulnerability

An information disclosure vulnerability exists in where a JWT token is logged if it cannot be parsed.

16.10.4 Visual Studio 2019 version 16.10.4

released July 20, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.4

Top Issues Fixed in this Release

  • Remove use of disallowed registers in memset.
  • Fixed a codegen bug involving complicated nested expressions involving the bitwise-not operator.
  • Fixed shader debugging for VS Graphics Analyzer
  • Fixed an IntelliSense crash that occurred when processing static data members in in-class template specializations.
  • X64 VC Redist no longer removes runtime files when run with /installer /passive switches.
  • Corrected an issue where the include search order may be incorrect when prepended to "Include Directories".
  • We have fixed performance problem and false positives caused by one of the checker extensions that finds bugs in misuse of VARIANTs.
  • We have fixed performance problem caused by one of the checker extensions that finds bugs in misuse of enum values as index.
  • Introduces Live Share language services fix that restores major code editing features for collaboration session participants (code completion, syntax highlighting, errors, etc.)
  • Concurrency analyzer should no longer produce false warnings C26110 (failure to acquire lock) with auto-lock patterns.
  • C# and Visual Basic compilers fixed a crashed involving InternalsVisibleTo clashing with other assembly level attributes.
  • We have fixed an issue experienced by customers packaging their projects with Windows Application Packaging Projects, such as WPF NetCore apps and Project Reunion apps:

Error Assets file '...\obj\wappublish\win10-x86\project.assets.json' not found. Run a NuGet package restore to generate this file. App4 (Package) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

This problem was caused by the Packaging Project looking for the project.assets.json file in the wrong directory, win10-$(configuration), when it should be looking in win-$(configuration).

From Developer Community


16.10.3 Visual Studio 2019 version 16.10.3

released June 29, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.3

Top Issues Fixed in this Release

  • Fixing an issue where Go To Definition on symbols imported from modules sometimes goes to the start of the module file rather than the symbol's definition.
  • Fixed an issue where visually impaired developers would face difficulty to identify the focus on the screen since the Luminosity ratio of border color is less than 3:1 for the text box.
  • Fixed Database Project: Dragging a file from solution explorer into an opened one is deleting the file from the file system.
  • Fixed an issue where using a merge statement in database projects will result in build errors.
  • No longer send paths on disk when reporting which extensions are installed.
  • Fixes an issue where attempting to close the quick start window can cause Visual Studio to crash.
  • Fix an issue where showing tool windows sometimes crash VS.
  • Fix for C++ Edit and Continue in user-code when unrelated G++/GCC generated symbols are loaded in the application.
  • Fixes private selector usages from the iAd framework.
  • Fixed a crash in VS which results from errors occurring in the XAML Designer
  • Fixed an issue with the Windows Application Packaging projects that reference .netcoreapp projects are generating a .msixbundle.
  • Fixing failure to conduct fast up-to-date check on WAP projects which was causing those projects to be built (instead of being skipped), even when project is up-to-date and does not need modifications, further causing increased incremental build times in IDE.

From Developer Community


16.10.2 Visual Studio 2019 version 16.10.2

released June 15, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.2

Top Issues Fixed in this Release

  • The concurrency checks in code analysis got smarter. They are harder to fool with complex control flow.
  • This fix restores the behavior for external headers by skipping analysis of external headers and suppressing warnings from external headers.
  • Fixed .aspx/ascx files where users may see incomplete IntelliSense or experience slow performance.
  • Fixed scalability issues with the Unity CodeLens provider when working on large projects.
  • Reinstated translated strings in the Azure Service Authentication options page.
  • Fixed intermittent visual code display issues when using Resharper extension.
  • Fixed an issue where certain tool windows, editors, and designers would be rendered too small to display any content.
  • Fixes Xamarin iOS missing app icon problems, either when running an app or when trying to publish it to the App Store.
  • Building projects with AOT+LLVM no longer fails with an XA3001 error.
  • After upgrading to Visual Studio 2019, version 16.10, under certain circumstances, publishing of UWP apps may fail with error message "The specified resource name cannot be found in the image file". This is now fixed.
  • Fixed an issue causing Visual Studio 2019 to stop responding when device configuration changes.
  • Fixes three issues in MSBuild:
    • Avoids MSB4017 errors when building in Azure DevOps.
    • $([MSBuild]::MakeRelative()) again preserves trailing slashes in its input.
    • Exclude globs with a trailing ** pattern again exclude files without . characters

From Developer Community


16.10.1 Visual Studio 2019 version 16.10.1

released June 08, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.1

Top Issues Fixed in this Release

  • Fixed an issue causing a crash with the IntelliSense compiler.
  • Fixed an issue that could cause Visual Studio 2019 instances from closing if the Test Explorer is open in the solution.
  • Fixed a failure when developers would build partial solutions from the command line.
  • Fixed a failure in ClickOnce Publish for .NET Core applications.
  • Fixes an issue where the call stack window can crash Visual Studio 2019.
  • Fixes build error "Metadata file '***\bin\Debug\NativeLibrary.dll' could not be found" when building iOS Binding projects.

Security Advisory Notice

CVE-2021-31957 ASP.NET Denial of Service Vulnerability

A denial of service vulnerability exists when ASP.NET Core improperly handles client disconnect.

From Developer Community


16.10.0 Visual Studio 2019 version 16.10.0

released May 25, 2021

Summary of What's New in this Release of Visual Studio 2019 version 16.10.0

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 & constinit support added in 16.10
    • The final pieces of <chrono>: new clocks, leap seconds, time zones, and parsing
    • Implementation of <format> 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 https://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

Details of What's New in Visual Studio 2019 version 16.10

Docker Tools

Containers Tool Window

In this release, we made additions to the Containers tool window to make it easier to view and interact with containers and images. Just navigate to View > Other Windows > Containers to try out the new features.

  • Containers are now grouped by Compose project. This makes it simple to tell which containers represent your application. Also shown, we added a Labels tab in Containers so you can easily see which labels you are using during development.

Compose grouping option and containers label tab

  • We also added a Labels tab for images.

Images Label tab

  • The new Volumes tab allows you to see the volumes of a running container and even open the files in Visual Studio.

Container Volumes tab

  • We now support the ability to tag an image from the Containers tool window. From Images, right-click an image and select Tag.

Tagging an image

Compose
  • Docker Compose tooling in Visual Studio now provides the ability to run any combination of services defined in your Compose files. Either open the Debug dropdown or right-click on your docker-compose project and select Manage Docker Compose Launch Settings to get started.

Manage Docker Compose Launch Settings

Git Productivity

  • To start making it easier to create pull requests while you're in Visual Studio, we added menu items that are deep link shortcuts to the webpages that allow you to create a PR or view a list of PRs for your repository. The menu is dynamic based on whether your repository is on GitHub or Azure DevOps.

Create a PR and view list of PRs on the web from the Git menu

  • The branch picker in the status bar and the Git Changes window now checks out a local or remote branch when you single-select the branch. You can find additional actions in the context menu.

Left click to check out a branch and right click for additional actions

  • The new repository picker in the status bar has a context menu on right-click that allows you to remove items from the list.

Remove items from the repository picker list through the context menu

  • When using the repository picker or Git menu Local Repositories list, opening a repository won’t automatically load the solution anymore. You’ll instead see the folder view and solution available in a list you can select from. You can change this behavior through Git > Settings by toggling the checkbox.

  • You can choose to check out a branch from the Git Repository window by double-clicking the branch name. If you want to change this behavior, then toggle the checkbox in Git > Settings.

Settings to toggle auto-sln load and branch check out.

  • You can perform even more actions now from the Git Changes window. The toolbar icons are customizable and you can choose which actions to show. You can Sync with multiple remotes from the overflow menu. And you can open your repository’s remote webpage in the browser.

Git Changes overflow menu with callouts to Sync, open in browser, and toolbar actions.

  • Search local and remote branches and perform common branch actions from the status bar branch picker.

Branch picker in the status bar.

  • Search and switch between local Git repositories from the status bar repository picker.

Repo picker in the status bar.

  • Fixed an issue where the local repositories list in the Git menu wasn't loading on Visual Studio launch.
  • We added two new options in Git > Settings to manage how you open and switch repositories. You can now keep the current solution open when switching to another repository

Setting to keep solution open.

  • You can also choose to not load the repository root folder when opening a repository.

Setting to open the folder

  • Sync (Pull then Push) your branch with the remote from the unpushed commits button in the status bar, and from the Sync command in Git Menu.

Sync button in the status bar.

  • Fetch and pull from the Git Repository window history pane even when there are no incoming commits. Access these sections from the status bar or the keyboard shortcut Ctrl+0+Y.

Incoming section in Git Repository window with a callout to fetch and pull buttons.

  • Select a commit in the Git Repository window to view its details and the comparison of file changes without having to navigate to other windows. Select two commits and right-click to compare them in the same window. Pop out the details into their own window for full screen visibility to deep-dive into the changes.

Embedded commit details and file comparison in Git Repository window.

  • View the number of deletions and insertions in a file, and change the layout of the comparison.

Popped out Commit window with callouts to number of file changes and layout view buttons in toolbar

  • Automatically re-connect or prompt to establish initial Azure DevOps connection when opening an Azure DevOps Git repository. This enables access to work items and builds for the opened repository.

Info bar in Git Changes window prompting you to connect to Azure DevOps for the current repository.">

  • When resolving rebase or merge conflicts, the merge editor and the context menu will show you the branch names for the Current and Incoming branches. This fixes the confusing Source and Target terminology.

Context menu when resolving conflicts displays the branch names.

Rebase and Merge editor displays branch names in the headings.

.NET Productivity

  • We added a Remove Unused References command that allows you to clean up project references and NuGet packages that have no usage. This option is off by default so you will need to enable it in Tools > Options > Text Editor > C# > Advanced and select Show “remove Unused References” command in Solution Explorer (experimental). Once the option is enabled the Remove Unused References command will appear in the right-click menu of a project name or dependencies node in Solution Explorer:

Remove Unused References command

Selecting Remove Unused References will open a dialog where you can view all references that are going to be removed with an option to preserve the ones that you want to keep:

Remove Unused References dialog

  • We added a new command called Smart Break Line that automatically inserts a set of braces and places the caret within those braces when using Shift+Enter as a commit character. Smart Break Line works for all type declarations that require braces as well as properties, events, fields, and object creation expressions. The example below shows Smart Break Line used on a class and a field. If the field doesn’t have a semicolon at the end, typing Shift+Enter will convert the field to a property by adding a set of braces. You can press Shift+Enter again to undo the commit which will also automatically add a semicolon at the end of the field:

Smart Break Line

  • There is now a refactoring to simplify LINQ expressions which will remove the unnecessary call to the Enumerable for the .Where() method to help improve performance and readability. Place your cursor on the LINQ expression. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Simplify LINQ expression.

Simplify LINQ Expression

  • There is now IntelliSense completion for Enum values when a type is known even if the Enum name is not entered.

IntelliSense completion for Enum values

  • We added a new IntelliSense completion mode setting that gives you the ability to set default completion options. This new setting is available in Tools > Options > Text Editor > Advanced > Default IntelliSense completion mode where you can choose from the following options: Last used which will preserve the last setting you used with Ctrl+Alt+Space, Tab-only which will only complete on tab, and Automatic which is currently the default behavior that will complete on punctuation and special characters.

IntelliSense completion mode setting

  • We added new code style preferences for new lines. You can configure these preferences with an EditorConfig file or within Tools > Options > Text Editor > C# > Code Style > New line preferences (experimental).

Code style options for new lines

For example, you can set your code style preference to report a diagnostic and offer a code fix to remove extra blank lines:

Code fix remove extra blank lines

  • There is now Find All References support for Source Generators that allows you to find references in a source generated document.

  • There is now a completion option that automatically inserts arguments when writing a method call. This feature is off by default so you will need to enable it in Tools > Options > Text Editor > C# > IntelliSense and select Tab twice to insert arguments (experimental). Start writing a method call and press tab twice (tab+tab). Notice that the method call includes arguments based on the method’s default values. You can then use parameter info to cycle through the list of arguments that you would like inserted by pressing the up and down arrow keys. You can also start typing an argument to bring up the IntelliSense completion list and type semicolon which will commit the argument and add a semicolon to the end of the method call.

Method call argument completion

  • We created a UI for EditorConfig. Open any C# or Visual Basic EditorConfig file from your solution. Notice that the new UI will open displaying code style and code quality configuration option for both C# and Visual Basic.

EditorConfig UI

  • There is now a visual representation for navigating and inspecting the inheritance chain. This option is off by default so you will need to turn it on in Tools > Options > Text Editor > C# > Advanced and select Show inheritance margin. Enabling inheritance margin will add new icons to the margins representing your code’s implementations and overrides. Clicking on the inheritance margin icon will display inheritance options that you can select to navigate to.

Inheritance Margin Icons

  • There is now IntelliSense completion for casts, indexers, and operators.

IntelliSense completion for casts, indexers, and operators

  • There is now debugger support for Source Generators. You will first need to install the .NET Compiler Platform SDK component from the Visual Studio Installer. You will then need to add the <IsRoslynComponent>true</IsRoslynComponent> property to your your project file. Next, enable the 'Roslyn Component' debugger option in the Project Properties Debug page and select the appropriate target project. Next, press F5 on the generator project which will start the CSC.exe/VBC.exe that builds the target project allowing you to debug the generator code.

Source Generator debugger

Source Generator debugger target project

In this release we also added the following enhancements to the Edit and Continue (EnC) debugging experience in Visual Studio:

  • It is now possible to apply changes in code that is within a partial class.
  • You can now apply changes within a Source Generated) file.
  • It is now possible to add and/or change a using directive.
  • Improvements in reliability and lower memory consumption.

All three changes are available anywhere where EnC is supported today and work with both C# and Visual Basic source files.

Debugger & Diagnostics

  • We have developed several analyzer to help catch common issues in managed memory dumps. This analysis can now be performed on managed Linux core dumps.

Automatically analyze memory dumps

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):

Razor (ASP.NET Core) Preview Editor

The new preview Razor editor now supports the following Razor editing features:

  • IntelliSense completion now filters for HTML components, TagHelper elements, and C# attributes:

Razor IntelliSense filters

  • IntelliSense completion for C# overrides.
  • Go to Definition support for generic componenets.
  • New code style configuration options for tabs vs spaces. These code styles will be respected when typing, formatting, and creating a new Razor file. You can configure tabs and spaces in Tools > Options > Text Editor > Razor (ASP.NET Core) > Tabs.
  • The Razor text editor in Tools Options has been renamed from ASP.NET Core Razor Language Services to Razor (ASP.NET Core).

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

Test Experience Accessibility Improvements

  • Console.Writeline now shows in the Test Explorer! Long output appears as a collapsible section in the test detail summary pane. Output over a certain length displays the first several lines and is then truncated with an option to open the test log in a separate window. The stacktrace truncates if there are over 20 frames and will then only show the first and last 10 frames. An important part of the truncation design was also focused on reducing VS freezes when test runs have large output. Tests that have large output will no longer block the UI thread.

Test output includes Console.Writeline

  • Test output can now preserve tags so hyperlinks and stacktrace links are navigable even from the log files. These links are now keyboard friendly as well.

Test output preserves hyperlinks and stacktraces

Test logs also preserve hyperlinks and stacktraces

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

Test logs are easier to select with keyboard shortcuts

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

Test tools

  • 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 https://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.

Persisted test results from last Visual Studio session appear faded

Web Tools

Dynamic configuration allows for configuration resources to be refreshed automatically using a middleware. App Configuration as a Connected Service can now automatically integrate dynamic configuration into your application. To use this connected service, click on Connected Services and add Azure App Configuration as a Service Dependency.

Windows Application Packaging Project "Dependencies Tree"

  • Following up on last year’s work to enable NuGet package references in the Windows Application Packaging Project (WAP), we have enabled a new UI in the WAP’s Solution Explorer experience. The old experience didn’t show these package references or allow you to add NuGet packages via the UI.

Windows Application Packaging Project Old User Interface.

  • In the new experience, with the help of CPS and the .NET Project System, we have enabled a “Dependencies Tree" that continues to display project references via the “Applications” subtree, but also features a “Packages” subtree that will allow you to manage NuGet packages as well.

Windows Application Packaging Project New User Interface.

XAML Tooling Improvements (WPF & Xamarin.Forms)

Xamarin.Forms

In this release we’ve made two small improvements to XAML IntelliSense and XAML Hot Reload for Xamarin.Forms customers. Hot Reload “change only” will no longer report false errors for:

  • Setters in VisualStateManager referencing properties without specifying type, e.g. <Setter Property="BackgroundColor" Value="Red">.
  • Merged ResourceDictionaries not wrapped into <ResourceDictionary.MergedDictionaries> element

Example:

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

XAML Sample Data

In this release we've further enhanced the XAML Designer's design-time data capability by introduced a new way to add generic sample data to your ItemsControls. This feature works for ListBox, ListView and DataGrid in WPF only.

  • Sample Data can be enabled by setting d:ItemSource='{d:SampleData}' on your ListBox, ListView or DataGrid
  • This will populate your control in the designer only with a set of 5 items that match your DataTemplates and Binding Paths
  • You can change how many items are generated using the ItemCount property, for example: d:ItemSource='{d:SampleData ItemCount=3}'

ListBox showing Sample Data.

XAML Designer Quick Actions

  • A new lightbulb near the corner of a selected control in the XAML Designer can be used for quick access to commonly edited properties for that control.

  • Supported controls include:

    • UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
    • 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 the “New WPF XAML Designer for .NET Framework” preview feature enabled in the options dialog).

  • XAML Designer Quick Actions also has an extensibility model. For more information on creating your own actions, see the XAML Designer Extensibility GitHub

XAML Designer Quick Actions on a Button

MVVM Tooling for XAML

In this release, we’ve introduced a lightbulb in the XAML Editor to create a view-model. This lightbulb is surfaced on the root element of the XAML document when we detect that an MVVM framework is being used in the project. The dialog allows for customization of the generated view-model namespace, folder and inherited base view-model.

Create view-model lightbulb experience

The lightbulb also sets the generated view-model as the x:DataType(Xamarin.Forms) or d:DataContext(all other platforms) for the XAML document, allowing the user to further leverage the XAML Editor lightbulbs to generate bound properties and commands in view-models.

Service Fabric Tools

This feature introduces StartupServices.xml file in a Service Fabric Application design. This file hosts DefaultServices section of ApplicationManifest.xml. With this implementation, DefaultServices and Service definition-related parameters are moved from existing ApplicationManifest.xml to this new file called StartupServices.xml. This file is used in each functionalities (Build/Rebuild/F5/Ctrl+F5/Publish) in Visual Studio.

Top Issues Fixed in this Release

  • Fixed an issue where C# developers invoking the Edit.SmartBreakline command would remove all the content in the accessor of Property.
  • Fixed an issue where developers updating a codestyle setting would have the change apply in all Visual Studio instances instead of just inside the desired folder.
  • The "Apply Code Changes" icon was showing whenever a natvie or merged project was opened. It will only be enabled once a developer starts debugging.
  • Fixes breaking change in AudioUnitPropertyIDType
  • Fixed an issue where developers using UWP unit test framework were unable to run tests on remote devices.

From Developer Community

Developer Community has a complete list of all of items shipping in this release.

Here are some of the top voted issues released in 16.10:


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