Visual Studio Icon Visual Studio 2019 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.


What's New in 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.7 Preview 1 New release icon

released May 19, 2020

In This Release of Visual Studio 2019 version 16.7 Preview 1


Define playlists dynamically

You can now define playlists dynamically based on Project, Class, or Namespace. This means you can configure a playlist to include everything in a certain project/class/namespace; any new test added to that group will automatically be included in your playlist!

  • Create a playlist by right clicking on a project, namespace, or class grouping in the Test Explorer.
Test Explorer: Create a playlist
Test Explorer: Create a playlist
  • Edit what groups are included in the playlist by clicking on the edit button in the tool bar. Check boxes will appear. Edit groups as desired.
Test Explorer: Edit a playlist
Test Explorer: Edit a playlist
  • Instead of being a static list of tests these playlists dynamically update based on rules. If you want to better understand what rules are generating your dynamic playlist, save the playlist file to disk with the save button and view the rules generated in the xml.
PlayList file dynamic rule set
PlayList file dynamic rule set
  • You can continue to include/exclude individual tests and the playlist will be able to either update its dynamic rules or switch back to keeping track of tests as a static list. You can also use traits to define a dynamic group by editing the playlist xml file directly.

Windows Forms

Windows Forms Designer for .NET Core

The Windows Forms designer for .NET Core projects is now available. To enable the designer in Visual Studio, go to Tools > Options > Environment > Preview Features and select the Use the preview Windows Forms designer for .NET Core apps option.

In this release the following controls are now supported along with other improvements:

  • UserControl and custom controls infrastructure
  • TableLayoutPanel
  • Fundamentals for third-party controls support
  • Fundamentals for data binding support
  • Improvements in designer interaction with the TableLayoutPanel

WPF/UWP Tooling

XAML Editor:

Inline Color Previews in XAML Code Editor: An inline color visualizer is now available in the XAML Code Editor:

Inline Color Previews in XAML Code Editor
Inline Color Previews in XAML Code Editor
Note: Colors from resources are currently not supported, but this support is coming in a future release.

XAML Binding Failures Diagnostic:

XAML Binding Failures diagnostic improvements

In this release we’re adding new features to Visual Studio that makes becoming aware of and seeing the details of XAML binding failures easier, these improvements include:

  • New XAML Binding failure indicator icon in the in-app toolbar experience for WPF and UWP developers. This icon will change red if at least one binding fails and highlighting it will show you the total number of failed bindings in the tooltip. Clicking the icon will take you to the new XAML Binding Failures panel
  • New XAML Binding Failures panel that takes the binding failures that were previously only available in the Output window and makes them easy to review in the new dedicated experience with features such as sorting, searching and grouping of similar errors. This panel works for WPF, UWP and Xamarin.Forms projects (note: requires Xamarin version 4.5.0.266-pre3 or higher)
XAML Binding Failures Improvements
XAML Binding Failures Improvements

This feature is still in development and is only available if enabled by customers. To enable this experience, go to Options > Environment > Preview Features and enable “XAML Binding Failure Window”.

Known Limitations: Clicking on binding failures in the panel does not yet navigate to code. Also attaching to a running process will not work, you must F5 into the debug experience for this experience.

XAML Designer:

XAML Designer Suggested Actions 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 doesn’t support extensibility, nor is it feature complete.

XAML Designer: Suggested Actions
XAML Designer: Suggested Actions

The New WPF XAML Designer for .NET Framework Projects is now 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.

C++

  • We've added first-class support for debugging CMake projects on remote systems with gdbserver.
  • Find memory corruption errors easily with an experimental implementation of AddressSanitizer for C++ in Visual Studio, now available for x64 native projects. We also now support the use of debug runtimes (/MTd, /MDd, /LDd).

JavaScript/TypeScript

  • The implementations of Completion and Quick Info have been updated to better support LiveShare scenarios.

.NET Productivity

  • There is now a quick action to add a debugger display attribute to a class. This allows you to pin properties within the debugger programmatically in your code. Place your cursor on the class name. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Add ‘DebuggerDisplay` attribute. This will add the debugger display attribute to the top of your class and generate an auto method that returns ToString() which you can edit to return the property value you want pinned in the debugger.
Add Debugger Display Attribute
Add Debugger Display Attribute
  • There is now a code fix for accidental assignments or comparisons to the same variable. Place your cursor on the warning. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. For accidental assignments, select Assign to .value. For accidental comparisons, select Compare to .value.
Accidental Assignments Code Fix
Accidental Assignments Code Fix
Accidental Comparisons Code Fix
Accidental Comparisons Code Fix
  • You can now generate comparison operators for types that implement IComparable. Place your cursor either inside the class or on IComparable. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Generate comparison operators. A boiler plate will be generated for you with the comparison operators.
Generate Comparison Operators
Generate Comparison Operators
  • You can now generate IEquatable operators when generating .Equals for structs. We already had a refactoring to Generate Equals and GetHashCode for value types. Now with structs we will automatically add the IEquatable as well as the equals and not equals operators for you. Place your cursor within the struct. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Generate Equals(object).
Generate IEquatable Operators
Generate IEquatable Operators
  • You can now create and assign properties or fields for all unused constructor parameters. We already had a quick action that allowed you to do this on an individual parameter, but now you can do it for all unused parameters at once. Place your cursor on any of the remaining parameters. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. To create and initialize properties, select Create and assign remaining as properties. To create and initialize fields, select Create and assign remaining as fields.
Create and Assign Remaining Fields
Create and Assign Remaining Fields
Create and Assign Remaining Properties
Create and Assign Remaining Properties
  • There is now IntelliSense completion in DateTime and TimeSpan string literals. Place your cursor inside the DateTime or TimeSpan string literal and press (Ctrl+Space). You will then see completion options and an explanation as to what each character means. Both the date time format and an example will be provided.
IntelliSense Completion in DateTime and TimeSpan
IntelliSense Completion in DateTime and TimeSpan string literals
  • You can now add a parameter within the Change Signature dialog. Place your cursor within the method’s signature. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Change signature. The following dialog will open where you can now select Add to add a parameter. Once you select Add, the new Add Parameter dialog will open. The Add Parameter dialog allows you to add a type name and a parameter name. You can choose to make the parameter required or optional with a default value. You can then add a value at the call site and choose a named argument for that value or you can introduce a TODO variable. The TODO variable puts a TODO in your code so you can visit each error and go through each call site independently and decide what to pass. For optional parameters you have the option to omit the call site completely.
Change Signature Dialog
Change Signature Dialog
Add Parameter Dialog
Add Parameter Dialog
  • Analyzer authors can now use CompletionProviders for IntelliSense completions when shipping their analyzers with NuGet. Before, library authors would have to create a separate VSIX since CompletionProviders was only available in VSIX. Now library authors can implement IntelliSense completions in the NuGet package where their analyzers are, and they don’t need to do it separately. Completion providers implemented in NuGet packages will also provide suggestions specific to individual projects and will automatically work in each IDE supporting the feature.

Top Issues Fixed in Visual Studio 2019 version 16.7 Preview 1


From Developer Community

Known Issues

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


Feedback

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