Visual Studio 2019 version 16.1 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.1
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.1 Releases
- July 9, 2019 — Visual Studio 2019 version 16.1.6
- July 2, 2019 — Visual Studio 2019 version 16.1.5
- June 25, 2019 — Visual Studio 2019 version 16.1.4
- June 11, 2019 — Visual Studio 2019 version 16.1.3
- June 4, 2019 — Visual Studio 2019 version 16.1.2
- May 24, 2019 — Visual Studio 2019 version 16.1.1
- May 21, 2019 — Visual Studio 2019 version 16.1
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:
- Visual Studio 2019 version 16.1 and 16.2 Preview 1.
- Visual Studio 2019: Code faster. Work smarter. Create the future.
Visual Studio 2019 version 16.1.6
released July 9, 2019
Security Advisory Notices
CVE-2019-1077 Visual Studio Extension Auto Update Vulnerability
An elevation of privilege vulnerability exists when the Visual Studio Extension auto-update process improperly performs certain file operations. An attacker who successfully exploited this vulnerability could delete files in arbitrary locations. To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. The security update addresses the vulnerability by securing locations the Visual Studio Extension auto-update performs file operations in.
CVE-2019-1075 ASP.NET Core Spoofing Vulnerability
A spoofing vulnerability exists in ASP.NET Core that could lead to an open redirect. An attacker who successfully exploited the vulnerability could redirect a targeted user to a malicious website. To exploit the vulnerability, an attacker could send a link that has a specially crafted URL and convince the user to click the link.
The security update addresses the vulnerability by correcting how ASP.NET Core parses URLs. Details can be found in the .NET Core release notes.
CVE-2019-1113 WorkflowDesigner XOML deserialization allows code execution
A XOML file referencing certain types could cause random code to be executed when the XOML file is opened in Visual Studio. There is now a restriction on what types are allowed to be used in XOML files. If a XOML file containing one of the newly unauthorized types is opened, a message is displayed explaining that the type is unauthorized.
For further information, please refer to https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.
Visual Studio 2019 version 16.1.5
released July 2, 2019
###Summary of issues addressed in Visual Studio 2019 version 16.1.5
- Fixed known issue: Merge tools in "Resolve conflicts" not shown.
Visual Studio 2019 version 16.1.4
released June 25, 2019
Summary of issues addressed in Visual Studio 2019 version 16.1.4
- Fixed known issue: The debugger's worker process (msvsmon.exe) unexpectedly exited. Debugging will be aborted.
- Fixed known issue: VS 2019 crashes when debugging async code.
- Fixed known issue: Xamarin problem following update to VS2019 16.1.
- Fixed known issue: [Xcode11] [Simulator] Updating to Xcode 11 stops the simulator from launching.
- Improved the reliability of Visual Studio by fixing an intermittent issue that happens when opening solutions.
- Fixed a crash with the search functionality in locals / autos / watch windows when the IDE is not in break mode.
Visual Studio 2019 version 16.1.3
released June 11, 2019
Summary of issues addressed in Visual Studio 2019 version 16.1.3
- Fixed known issue: Fixed VSiX Installer throwing an IOException when executed from Visual Studio installation folder.
- Fixed known issue: Removed double-prompting for survey on uninstall.
- Enabled a help link for new users to get help choosing a workload.
Visual Studio 2019 version 16.1.2
released June 4, 2019
Summary of issues addressed in Visual Studio 2019 version 16.1.2
- Fixed known issue: XAML designer for UWP - control properties not displayed
- Fixed known issue: UWP XAML designer doesn't update elements on updating XAML code
- Fixed known issue: XAML properties and document structure
- Fixed known issue: Properties window not showing the properties when clicking an object
- Fixed known issue: Unable to see properties of any items
- Fixed known issue: Installation error when trying to connect to the Mac: "The Xamarin.iOS version installed on 'x' (12.8.0.2) is newer than your version".
- Fixed known issue: Fixed right click solution name in titlebar VS crash bug.
- Improved performance for customers with the Azure workload installed.
- Corrected errors during restore and build on SDK-based projects that use 3rd party SDKs to target UWP platforms.
- Fixed a bug in C# compiler where it was not properly warning customers about incomplete interface implementations.
- Improved error messaging in Visual Studio Tools for Kubernetes.
- Fixed error when adding a comment in PR for SymbolCheck.
Visual Studio 2019 version 16.1.1
released May 24, 2019
Summary of Issues addressed in Visual Studio 2019 version 16.1.1
- Fixed known issue: Custom tasks with default contextType via tasks.vs.json are broken in Open Folder.
- Fixed known issue: No snapshot created for C++ native code in Memory Usage tool in the Diagnostic Tools window while debugging.
- Fixed known issue: Crash in VS 16.1.0 when pressing the link "search online".
- Fixed the issue where sometimes certain features (i.e. Find All References) in LiveShare guest session do not work.
- Fixed an issue where the devenv.exe process could hang around after shutdown of Visual Studio for up to 30 seconds.
Visual Studio 2019 version 16.1
released May 21, 2019
Summary of What's New in Visual Studio 2019 version 16.1
IDE
- Visual Studio IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
- Added Per-Monitor Awareness support.
- New codefixes are available for C#.
- Most Recently Used has been added to Visual Studio Search.
Debugger
- Source Link authentication improvements have been implemented.
- Added nuget.org symbol server to the list of default symbol servers.
- Time Travel Debugging preview now includes exception stepping support.
Extensibility
- Removed the need for .resx file in VSIX projects (BuildTools update).
- VSIX Project template now uses the new SDK version.
Performance
- User optimization experience to improve the solution load time of very large solutions.
- Template authors can add custom tags to their templates.
- CodeLens support for custom UI.
- Provided updates to Language Server Protocol implementation.
- Updated behavior for switching between solutions, folders, and other views.
C++
- Added In-editor documentation for CMake.
- Use Windows Subsystem for Linux with C++ natively in Visual Studio, and AddressSanitizer for Linux projects and WSL.
- Made improvements and modified colorization in C++ Quick Info tooltips.
- Implemented new C++ Code Analysis quick fixes.
F#
- Released performance improvements and a bulk of bug fixes for F# and F# tooling.
.NET
- New .NET productivity features include one-click code cleanup on projects and solutions, a new toggle block comment keyboard shortcut, refactoring to move types to other namespaces.
- Users can now clone code from an SSH URI through the clone screen in the start window.
- Additions to .NET Productivity include intellisense completion for unimported types, toggling single-line comment/uncomment, exporting naming styles to editorconfig, and a new code style setting for preferring usings inside/outside namspaces.
- Implemented .NET SDK tooling additions around supporting WinForms and WPF projects for .NET Core 3.0 along with bug fixes and performance improvements.
- Visual Studio SDK v16.0 released to NuGet.
- Released a preview of the XAML Designer for .NET Core 3.0 WPF development.
Xamarin
- Default Android Experience for Xamarin now supports API 28.
- Xamarin.Forms XAML recommendations for design time attributes.
Top Issues Fixed in Visual Studio 2019 version 16.1
- Fixed known issue: Cannot navigate to the symbol under the caret in ASP.NET MVC Projects.
- Fixed known issue: Resx editor doesn't render.
- Fixed known issue: Find All References minimises when using arrow keys.
- Fixed known issue: Could not copy the file "obj\x64\Debug\Management.exe" because it was not found.
- Fixed known issue: Xamarin.iOS cannot find the application manifest. Please ensure the project contains a manifest file named 'Info.plist".
- Fixed known issue: nmake environment missing path to NETFX tools.
- Fixed known issue: Clicking on a ASP.NET Core project in solution opening the project .
csproj
file. - Fixed known issue: [MSConnect 3142311] Visual Studio IDE 提示 E1449,但是代码能正常编译运行,结果也对 -> Visual Studio IDE prompt E1449, but the code can compile and run normally, and the result is also correct.
- Fixed known issue: Assembly reference is removed from project after running app referencing library.
- Fixed known issue: When updating Visual Studio 2019 from RC to GA, RC shortcuts for Visual Studio are left behind.
Details of What's New in Visual Studio 2019 version 16.1
IDE
- IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
- Preview IntelliCode features - Custom Models, C++/TS/JS support, and Editorconfig inference - are disabled by default. To enable them, go to Tools > Options > IntelliCode.
- Removed the Editorconfig (IntelliCode) template from the New Item Wizard. To create an inferred Editorconfig, right-click on the desired location in Solution Explorer and choose Add > New EditorConfig (IntelliCode).
- Use the start window to clone code from an online repository through SSH.
- Visual Studio IntelliCode is installed by default when you install a workload that supports C#, XAML, or C++.
- C# and XAML base models will be on by default.
- Preview features, such as custom model training and argument completion, can be enabled via Tools > Options > IntelliCode.
- Added Per-Monitor Awareness support
- New codefixes available for C#.
- Added Per-Monitor Awareness support for WinForms based PropertyBrowser window of Visual Studio. Requires .NET Framework 4.8 RTM version installed on the machine.
Debugger
- Source Link can now use Windows Authentication to support on-premises TFS Source Control.
- Added nuget.org symbol server to the list of default symbol servers
Project
- The button for switching the Solution Explorer view will now consistently shows a dropdown menu of all possible views.
Improved the loading time for very large solutions. The improvement varies based on the size of the solutions.
Removed the Convert dialog under File > Convert. This feature was previously deprecated in Visual Studio 2015.
Updated the validation rules for the task.vs.json and launch.vs.json schemas, and added descriptions for the properties.
Added support for Linux remote debugging using a custom program via launch.vs.json.
Extensibility
- Users can now use the latest version of the Microsoft.VisualStudio.SDK to target Visual Studio 2019 in your extensions. Remember to only use this version of the SDK if the lowest supported version of Visual Studio is 16.0.
- Creating new VSIX projects will now contain the 16.0 version of the the Microsoft.VisualStudio.SDK NuGet package.
- Users can now add tags to your project templates to enable categorization and filtering in the Visual Studio 2019 New Project Dialog. Users can also choose from the built-in tags or their own custom language, platform, and project type tags.
CodeLens extensions can now display arbitrary UI content in their CodeLens details popup.
Updated Language Server Protocol with:
- Support for projected buffers to enable LSP for inline diff, and Razor files in LiveShare.
- Support for unnecessary diagnostics.
- Support for textDocument/typeDefinition.
- Support for textDocument/foldingRange (outlining).
Removed the need for .resx file in VSIX projects (BuildTools update)
The Microsoft.VSSDK.BuildTools NuGet package will now provide an empty .resx file as part of the build if no .resx with MergeWithCTO property exist. Most extensions don't use or need a .resx file to merge, so this will keep the project cleaner.
Per-monitor awareness changes might affect some extensions. Learn more about Per-Monitor Awareness support for Visual Studio extenders.
Editor
- Visual Studio Search will now display on focus the three most recently used actions invoked through Visual Studio Search, as shown in this sample mockup. (Note: icons and specific line items have not been fully updated in this mock-up.)
C++
- Use local Windows Subsystem for Linux (WSL) installation with C++ natively in Visual Studio without additional configuration or SSH connection.
- AddressSanitizer is now integrated into Visual Studio for Linux projects and WSL.
- Users can now separate remote build machines from remote debug machines when targeting Linux in both MSBuild and CMake projects.
- Quick Info tooltips now contain a link to search for online docs to learn more about the code construct. In the case of red-squiggled code, the link in Quick Info will search for the error online.
- Code within Quick Info tooltips is now colorized to reflect its colorization in the editor.
- Automatic quick fixes for the Code Analysis warnings C6001: using uninitialized memory <variable> and C26494 VAR_USE_BEFORE_INIT are available via the lightbulb menu on relevant lines, enabled by default in the Microsoft Native Minimum ruleset and C++ Core Check Type rulesets, respectively.
- Improvements to the CMake Settings Editor, including support for Windows Subsystem for Linux (WSL) and configurations from existing caches, changes to the default build and install roots, and support for environment variables in Linux CMake configurations.
- Improved logging for remote connections makes it easier to diagnose issues with cross-platform development.
- You can now separate your remote build machine from your remote debug machine when targeting Linux (specific to MSBuild projects, coming soon for CMake).
- The Template Bar can populate the dropdown menu based on instantiations of that template in your codebase.
- C++ IntelliCode now ships in-box and can be enabled under Tools > Options > IntelliCode > General. This version of IntelliCode has improved accuracy and includes support for free-functions.
- CMake integration now supports the Clang/LLVM toolchain for projects targeting Windows and/or Linux. You can now build, edit, and debug CMake projects that use either Clang, MSVC, or GCC.
- Lightbulbs for missing
#include
s that can be installed by vcpkg, and autocompletion of available packages for the CMake find_package directive.
Updated the CMake version that ships with Visual Studio to 3.14. This version adds built-in support for MSBuild generators targeting Visual Studio 2019 projects as well as file-based IDE integration APIs.
The General Property Pages for C++ projects has been revised, splitting out some options under a new Advanced page. The Advanced page also includes additional properties for preferred toolset architecture, debug libraries, the MSVC toolset minor version, and Unity (jumbo) builds.
The following C++20 preview features have been added to our implementation of the C++ Standard Library, available under
/std:c++latest
:starts_with()
andends_with()
forbasic_string
/basic_string_view
.contains()
for associative containers.remove()
,remove_if()
, andunique()
forlist
andforward_list
now returnsize_type
.shift_left()
andshift_right()
added to<algorithm>
.
The following C++20 preview features have been implemented in the C++ compiler, available under
/std:c++latest
:- Increased ability to find function templates via argument-dependent lookup for function call expressions with explicit template arguments (P0846R0).
- Designated initialization (P0329R4), which allows specific members to be selected in aggregate initialization, e.g. using the
Type t { .member = expr }
syntax.
Lambda support has been overhauled, addressing a large number of long-standing bugs. This change is enabled by default when using
/std:c++latest
. In other/std:c++*
language modes and under the default mode, the new parser can be enabled via/experimental:newLambdaProcessor
, e.g./std:c++17 /experimental:newLambdaProcessor
.In-editor documentation for CMake
Completions and quick info for built-in CMake commands, variables, and properties make it easier to edit your CMakeLists.txt files.
F# and F# tools
This is a relatively minor release for the F# language and tools, but it's not without some goodies! As with the VS 16.0 update, this release also focused on performance of editor tooling.
F# compiler and F# interactive
- Added
P/Invoke
support to F# interactive on .NET Core (#6544) - Added a compiler optimization for
Span<'T>
when used in afor
loop (#6195) - Added an optimization to avoid an extraneous
Some
allocations for F# options in various scenarios (#6532) - Changed the execution order of expressions used in the instantiation of Anonymous Records to be top-to-bottom, rather than alphabetical, to match the current experience with normal Records (#6487)
- A bug where very large literal expressions or very large struct declarations could cause the compiler to stack overflow on build has been resolved (#6258)
- A bug where breakpoints would no longer trigger when debugging a function with an Anonymous Records has been fixed (#6512)
- A bug where Anonymous Records passed to constructs expecting an
obj
parameter caused a compiler crash has been fixed (#6434) - A bug where
for var expr1 to expr2 do ...
loops could result in bizarrely valid (and discarded) syntax has been fixed (#6586) - A bug where Anonymous Records could not be used properly with events has been fixed (#6572)
- A longstanding bug where extremely large generated parsers in FsLexYacc (over 100 million lines) has been resolved (#5967
- A longstanding issue in the Type Provider plugin component of the compiler that could leave the door open for a memory leak caused by a type provider has been resolved (#6409)
- Support for
--pathmap
was added to the F# compiler by Saul Rennison, which resolves an issue where the resulting executable from a compilation would include absolute paths to source files in the embedded F# signature file resource (#5213) - An optimization to the F# AST that improves its consumption via other tools and enviroments (e.g., Fable) has been added by ncave (#6333)
- An optimization around traversing information when resolving members has been added by Steffen Forkmann (#4457)
- An improvement to error messages such that when a type implementation is missing necessary overrides a list of those missing overrides is reported has been added by Gauthier Segay (#4982)
F# tools
- The Target Framework dropdown for F# projects in the .NET SDK will now include values for all available .NET Core, .NET Standard, and .NET Framework values to ease migrating to .NET Core from .NET Framework on the .NET SDK
- A bug where renaming generic type parameters produces double backtick-escaped names has been fixed (#5389)
- A longstanding problem where Type Providers were redundantly reinstantiated, causing massive allocations over time, has been resolved (#5929)
- A longstanding issue where reading IL needlessly allocated 20MB over a short period of time was been resolved (#6403)
- A bug where the method
GetToolTipText
in the F# compiler service could show the same XML signature for several member overloads has been resolved by Vasily Kirichenko (#6244)
F# open source infrastructure
Finally, we improved the contribution experience by doing the following:
- Completed our build from source process so that the F# compiler and core library can be built with the .NET Core source build repository
- Removed our dependency on
netstandard1.6
so that the entire codebase uniformly targetsnetstandard2.0
andnet472
- Added a
.vsconfig
file to the root of the repository so that contributors using Visual Studio don't have to know everything that needs installing up front - Rewrote our project's README to remove potentially confusing information, include a quickstart for getting started with contributing, and attempting to be more inclusive in our messaging about the kinds of changes we'd love to take
.NET Productivity
- There is now experimental intellisense completion for unimported types! Uers now receive intellisense suggestions for types in dependencies in projects even if they have not yet added the import statement to the file. Turn this option on in Tools > Options > Text Editor > C# > Intellisense.
- Toggle Single Line Comment/Uncomment is now available through the keyboard shortcut (Ctrl+K,/). This command will add or remove a single line comment depending on whether your selection is already commented.
- Ability to export naming styles with the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
- Ability to use a new editorconfig code style rule to require or prevent usings inside a namespace. This setting will also be exported when using the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
- The Find All References “Kind” column now has more filter options and is aware of namespaces and types.
- Added a codefix for split/merge if statements.
- Added a codefix for wrapping binary expressions.
- A regex completion list can now be accessed through the intellisense menu (Ctrl + space) when inside a regex string. These completions also include an in-line description of what the suggestion does.
- Added a codefix for unsealing a class.
- Use one-click code cleanup for projects and solutions. Right-click on projects or the solution in the Solution Explorer and select ‘Run Code Cleanup’.
- Now use a refactoring dialog to move type to namespace or folder. Place your cursor in the class name and type (Ctrl + .) to open the quick actions and refactorings menu and select ‘Move to namespace.’ This launches a dialog where you can select the target namespace you would like to move the type to.
- Toggle Block Comment/Uncomment is now available through the keyboard shortcut (Ctrl+Shift+/) or through Edit > Advanced > Toggle Block Comment. This command will add or remove block comments depending on what you have selected.
- There is now a codefix for making readonly struct fields writable. Place your cursor in the struct name, type (Ctrl+.) to open the quick actions and refactorings menu, and select ‘Make readonly fields writable.’
- The codefix to add a private field from a constructor and vice versa is easier to discover and will show when any portion of the field name is selected. This refactoring now also offers all possible constructors.
XAML Designer Preview for .NET Core 3.0 WPF development
- There is an early preview of the XAML Designer for developers building .NET Core 3.0 WPF applications in Visual Studio. Many design-time features will be unavailable at this time. Since this is an early preview, if you encounter issues such as crashes, please submit Visual Studio feedback for the team to improve the experience going forwards.
- With each update to Visual Studio 2019, we will continue implementing more of the features that were previously available in the XAML Designer for .NET Framework WPF applications.
.NET SDK tooling
This release included a lot of work to unblock the use of WPF on .NET Core:
- An issue where an error dialog popped up whenever you add a new item to a .NET Core WinForms or WPF project was been resolved (#4486).
- Support for XAML files in .NET SDK projects (#1467) which includes many smaller items of work aimed at achieving experience parity with old-style .NET projects.
- Context menu item support for WinForms on .NET Core (#137): Windows Form, User Control, Component, and Class.
- Context menu item support for WPF on .NET Core (#137): Window, Page, User Control, Resource Dictionary.
- The Data Sources window is now enabled for .NET SDK projects, enabling common data management scenarios for WinForms (#4479.
Separately, a variety of other fixes were added in this release:
- .NET SDK projects now support
.razor
files (#4468). - Accessible help text was added to the Debug property page, allowing it to be read by screen readers (#4568).
- We added a setting that allows you to disable double-click to open a project file (#4493).
- The context menu option to edit a project file no longer includes the project name, fixing an issue where the context menu could get too wide due to a very long project name (#1492).
- A bug where creating a Data Source with the Data Binding UI created two
.datasource
fileas has been fixed (#4485). - A bug where using linked files could cause the up-to-date checker to fail has been resolved (#4580).
- A variety of bugs involving package resolution and the display of their resolved/unresolved state in the Dependencies node have been fixed (#2924,#4577).
You can see a full list of closed issues by going to the 16.1 milestone on GitHub.
Xamarin
- Updated the default Android Experience to API 28 for templates, device creation, installers, and more.
- IntelliSense on Windows now shows recommendations for design-time attributes when writing Xamarin.Forms XAML.
Known Issues
See all issues and available workarounds in Visual Studio 2019 version 16.1 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 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.