{"id":232075,"date":"2021-04-14T10:15:58","date_gmt":"2021-04-14T17:15:58","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=232075"},"modified":"2021-05-06T10:53:40","modified_gmt":"2021-05-06T17:53:40","slug":"visual-studio-2019-v16-10-preview-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2019-v16-10-preview-2\/","title":{"rendered":"Visual Studio 2019 v16.10 Preview 2 Releases Today"},"content":{"rendered":"<p>We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We\u2019ve added C++20 ranges, IntelliSense completions, margin icons for inspecting the inheritance chain, and new features for testing, Docker tooling enhancements, and Git integration!<\/p>\n<p><a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\" target=\"_blank\" rel=\"noopener\">Download the latest Visual Studio preview release<\/a> to try the new features in 16.10. And as always, we love your feedback and interactions through our <a href=\"https:\/\/developercommunity2.visualstudio.com\/home\" target=\"_blank\" rel=\"noopener\">Developer Community<\/a>.<\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\" target=\"_blank\">Install Visual Studio 2019 v16.10<\/a><\/div><\/p>\n<h2>New Features for C++<\/h2>\n<p>We&#8217;ve continued to add C++ 20 conformance features, as well as support for CMake preset files, and improved security for remote connections.<\/p>\n<h4>Use Ranges in C++ 20<\/h4>\n<p>We are delighted to announce that <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/initial-support-for-c20-ranges\/\" target=\"_blank\" rel=\"noopener\">our C++20 Ranges implementation<\/a> is now feature complete. Compile with <strong>\/std:c++latest<\/strong> if you want to try it out.<\/p>\n<h4>Use CMake Presets<\/h4>\n<p>The CMakePresets.json file is now supported in Visual Studio as a common alternative to CMakeSetting.json.<\/p>\n<p>CMake 3.19 and 3.20 added support for <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html\" target=\"_blank\" rel=\"noopener\">CMakePresets.json<\/a>, which allows you to specify common configure, build, and test options, and share them with others. Use the same CMakePresets.json file to configure and build with CMake in Visual Studio, Visual Studio Code, and from the CLI on Windows, Linux, and macOS. The three dropdowns in the screenshot below indicate the active Target System, <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html#configure-preset\" target=\"_blank\" rel=\"noopener\">Configure Preset<\/a>, and <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html#build-preset\" target=\"_blank\" rel=\"noopener\">Build Preset<\/a>.<\/p>\n<p><figure id=\"attachment_232156\" aria-labelledby=\"figcaption_attachment_232156\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-232156 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/03\/16.10-p2-cmake-presets.png\" alt=\"CMakePresets dropdown screenshot\" width=\"624\" height=\"148\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/03\/16.10-p2-cmake-presets.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/03\/16.10-p2-cmake-presets-300x71.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><figcaption id=\"figcaption_attachment_232156\" class=\"wp-caption-text\">Use CMakePresets.json files with Visual Studio and view the Target System, Configure Preset, and Build Preset in the dropdowns.<\/figcaption><\/figure><\/p>\n<h4>Customized Warning Levels for External Headers<\/h4>\n<p>Compiler and code analysis warnings for headers that are not part of your project are frustrating. To help with this, we\u2019ve made it easy to mark headers external to your project. External headers can have their own compiler warning level, code analysis, and template diagnostics settings. You can choose stricter settings for your project\u2019s code to enforce code quality without getting bogged down with warnings from headers you don\u2019t control.<\/p>\n<p><figure id=\"attachment_232239\" aria-labelledby=\"figcaption_attachment_232239\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-external-headers.png\"><img decoding=\"async\" class=\"size-full wp-image-232239\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-external-headers.png\" alt=\"Customize analysis of external headers\" width=\"786\" height=\"544\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-external-headers.png 786w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-external-headers-300x208.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-external-headers-768x532.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/a><figcaption id=\"figcaption_attachment_232239\" class=\"wp-caption-text\">Customize code analysis for external headers.<\/figcaption><\/figure><\/p>\n<h4>Safely Connect Remotely<\/h4>\n<p>We\u2019ve made creating remote connections safer by adding a prompt to accept or deny the host key fingerprint presented by the server. You may be familiar with this if you\u2019ve used the OpenSSH command-line client or PuTTY before.<\/p>\n<h2>New Features for .NET<\/h2>\n<p>IntelliSense has several new completions that help automate common workflow tasks.<\/p>\n<h4>Completions for Casts, Indexers, and Operators<\/h4>\n<p>IntelliSense now offers completions for casts, indexers, and operators. Look for these new options in the standard completions list.<\/p>\n<p><figure id=\"attachment_232163\" aria-labelledby=\"figcaption_attachment_232163\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-232163\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-cast-completions.gif\" alt=\"IntelliSense cast, indexer, and operator completion\" width=\"520\" height=\"215\" \/><figcaption id=\"figcaption_attachment_232163\" class=\"wp-caption-text\">IntelliSense now features completions for cast, indexor, and operators.<\/figcaption><\/figure><\/p>\n<h4>Automatically Insert Method Call Arguments<\/h4>\n<p>There is now a completion option that automatically inserts arguments when writing a method call.<\/p>\n<p><figure id=\"attachment_232164\" aria-labelledby=\"figcaption_attachment_232164\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-method-completions.gif\"><img decoding=\"async\" class=\"wp-image-232164\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-method-completions.gif\" alt=\"IntelliSense argument insertion\" width=\"759\" height=\"557\" \/><\/a><figcaption id=\"figcaption_attachment_232164\" class=\"wp-caption-text\">IntelliSense now provides argument insertion completions.<\/figcaption><\/figure><\/p>\n<p>This feature is off by default so you will need to enable it in Tools &gt; Options &gt; Text Editor &gt; C# &gt; IntelliSense and select <strong>Tab twice to insert arguments (experimental)<\/strong>.<\/p>\n<p>To use this feature, start writing a method call and press tab twice (<strong>tab+tab<\/strong>). Notice that the method call includes arguments based on the method\u2019s default values. Use parameter info to cycle through the list of arguments that you would like inserted by pressing the up and down arrow keys. 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.<\/p>\n<h4>User Interface for EditorConfig Files<\/h4>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/fundamentals\/code-analysis\/code-style-rule-options?view=vs-2019\" target=\"_blank\" rel=\"noopener\">EditorConfig<\/a> now has a user interface.<\/p>\n<p><figure id=\"attachment_232236\" aria-labelledby=\"figcaption_attachment_232236\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised.png\"><img decoding=\"async\" class=\"wp-image-232236 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised.png\" alt=\"User interface for EditorConfig files\" width=\"2009\" height=\"682\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised.png 2009w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised-300x102.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised-1024x348.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised-768x261.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-editor-config-revised-1536x521.png 1536w\" sizes=\"(max-width: 2009px) 100vw, 2009px\" \/><\/a><figcaption id=\"figcaption_attachment_232236\" class=\"wp-caption-text\">Update .editorconfig files with a user interface.<\/figcaption><\/figure><\/p>\n<p>Open any .NET EditorConfig file from your solution. Notice that the new UI will automatically open and display code style and code quality configuration options for both C# and Visual Basic.<\/p>\n<h4>Visualize Inheritance Chains<\/h4>\n<p>There is now a visual representation for navigating and inspecting the inheritance chain.<\/p>\n<p><figure id=\"attachment_232167\" aria-labelledby=\"figcaption_attachment_232167\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain.png\"><img decoding=\"async\" class=\"wp-image-232167 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain.png\" alt=\"Inheritance chain visualization\" width=\"480\" height=\"171\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain-300x107.png 300w\" sizes=\"(max-width: 480px) 100vw, 480px\" \/><\/a><figcaption id=\"figcaption_attachment_232167\" class=\"wp-caption-text\">Visualize inheritance chains without leaving your current code.<\/figcaption><\/figure><\/p>\n<p>This option is off by default so you will need to turn it on in Tools &gt; Options &gt; Text Editor &gt; C# &gt; Advanced and select <strong>Show inheritance margin. <\/strong>Enabling inheritance margin will add new icons to the margins representing your code\u2019s implementations and overrides.<\/p>\n<p>Click the inheritance margin icon to display inheritance options that you can navigate to.<\/p>\n<p><figure id=\"attachment_232168\" aria-labelledby=\"figcaption_attachment_232168\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain2.png\"><img decoding=\"async\" class=\"wp-image-232168 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain2.png\" alt=\"Inheritance chain navigation\" width=\"480\" height=\"169\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain2.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-inheritance-chain2-300x106.png 300w\" sizes=\"(max-width: 480px) 100vw, 480px\" \/><\/a><figcaption id=\"figcaption_attachment_232168\" class=\"wp-caption-text\">Navigate the inheritance chain using icons in the margin.<\/figcaption><\/figure><\/p>\n<h2>New Features for Containers<\/h2>\n<p>This release includes some exciting features for users of the Docker container tooling. You can now run any combination of services defined in your compose files, and enjoy improved container and image management in the Containers window.<\/p>\n<h4>Run Launch Services Defined in your Compose Files<\/h4>\n<p>We listened to your feedback, and now our Docker Compose tooling in Visual Studio provides the ability to run any combination of services defined in your Compose files. Open the Debug dropdown or right-click on your docker-compose project and select <strong>Manage Docker Compose Launch Settings<\/strong> to get started.<\/p>\n<p><figure id=\"attachment_232278\" aria-labelledby=\"figcaption_attachment_232278\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_right_click_manage_compose.png\"><img decoding=\"async\" class=\"wp-image-232278 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_right_click_manage_compose.png\" alt=\"Use the new menu option to manage Docker Compose launch settings.\" width=\"493\" height=\"664\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_right_click_manage_compose.png 493w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_right_click_manage_compose-223x300.png 223w\" sizes=\"(max-width: 493px) 100vw, 493px\" \/><\/a><figcaption id=\"figcaption_attachment_232278\" class=\"wp-caption-text\">Use the new menu option to manage Docker Compose launch settings.<\/figcaption><\/figure><\/p>\n<p>The tooling finds all services defined in your Compose files and displays a dialog where you can choose services to start at launch. As you create a Launch Profile, you have the option to either select from the <a href=\"https:\/\/docs.docker.com\/compose\/profiles\/\" target=\"_blank\" rel=\"noopener\">Docker Compose profiles<\/a> declared in your Compose files, or individually select the services you want to start.<\/p>\n<p><figure id=\"attachment_232274\" aria-labelledby=\"figcaption_attachment_232274\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/Manage_compose_using_services.png\"><img decoding=\"async\" class=\"wp-image-232274 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/Manage_compose_using_services.png\" alt=\"Individually select the services you want to start.\" width=\"547\" height=\"674\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/Manage_compose_using_services.png 547w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/Manage_compose_using_services-243x300.png 243w\" sizes=\"(max-width: 547px) 100vw, 547px\" \/><\/a><figcaption id=\"figcaption_attachment_232274\" class=\"wp-caption-text\">Individually select the services you want to start.<\/figcaption><\/figure><\/p>\n<p>Any Launch Profile can be saved and run from the Debug dropdown in Visual Studio. This means you can create multiple options for launching your application\u2019s services!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/debug_dropdown_manage_compose.png\"><img decoding=\"async\" width=\"415\" height=\"229\" class=\"wp-image-232273 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/debug_dropdown_manage_compose.png\" alt=\"Custom launch profile dropdown menu\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/debug_dropdown_manage_compose.png 415w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/debug_dropdown_manage_compose-300x166.png 300w\" sizes=\"(max-width: 415px) 100vw, 415px\" \/><\/a><\/p>\n<h4>Advanced Interactions with Containers and Images<\/h4>\n<p>In Preview 2, we added many new features to the Containers tool window. We made it easier to view and interact with containers and images. Navigate to View &gt; Other Windows &gt; Containers in Visual Studio to open the Containers tool window and try out the new features!<\/p>\n<p>Containers are now grouped by Compose project, which makes it easier to identify which containers are associated with your application. We also added a Labels tab in both Containers and Images so you can see which labels you are using during development.<\/p>\n<p><figure id=\"attachment_232275\" aria-labelledby=\"figcaption_attachment_232275\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels.png\"><img decoding=\"async\" class=\"wp-image-232275 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels.png\" alt=\"View container labels in the Labels tab.\" width=\"1136\" height=\"573\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels.png 1136w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels-300x151.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels-1024x517.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Container_Labels-768x387.png 768w\" sizes=\"(max-width: 1136px) 100vw, 1136px\" \/><\/a><figcaption id=\"figcaption_attachment_232275\" class=\"wp-caption-text\">View container labels in the Labels tab.<\/figcaption><\/figure><\/p>\n<p>Our new Volumes tab allows you to see the volumes of a running container and even open the files in Visual Studio.<\/p>\n<p><figure id=\"attachment_232276\" aria-labelledby=\"figcaption_attachment_232276\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Volumes_Tab.gif\"><img decoding=\"async\" class=\"wp-image-232276 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Volumes_Tab.gif\" alt=\"View and access volume files in the Volumes tab.\" width=\"1198\" height=\"569\" \/><\/a><figcaption id=\"figcaption_attachment_232276\" class=\"wp-caption-text\">View and access volume files in the Volumes tab.<\/figcaption><\/figure><\/p>\n<p>Finally, the Containers tool window also supports tagging an image! Right click on an image and select <strong>Tag.<\/strong><\/p>\n<p><figure id=\"attachment_232277\" aria-labelledby=\"figcaption_attachment_232277\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Tag_Image.gif\"><img decoding=\"async\" class=\"wp-image-232277 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10_P2_Tag_Image.gif\" alt=\"Tag an image in the Containers tool window.\" width=\"1198\" height=\"569\" \/><\/a><figcaption id=\"figcaption_attachment_232277\" class=\"wp-caption-text\">Tag an image in the Containers tool window.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h2>Test Experience Accessibility improvements<\/h2>\n<p>We made several updates to improve the usability and keyboard accessibility of the test detail pane and log files in the Test Explorer.<\/p>\n<h4>View Console Logs in the Test Explorer<\/h4>\n<p>Console.WriteLine messages now show in the Test Explorer.<\/p>\n<p><figure id=\"attachment_232176\" aria-labelledby=\"figcaption_attachment_232176\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer.png\"><img decoding=\"async\" class=\"size-full wp-image-232176\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer.png\" alt=\"Console.WriteLine now shows in the Test Explorer.\" width=\"624\" height=\"238\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer-300x114.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><figcaption id=\"figcaption_attachment_232176\" class=\"wp-caption-text\">Console.WriteLine now shows in the Test Explorer.<\/figcaption><\/figure><\/p>\n<p>Output appears as a collapsible section in the test detail summary pane. Long output is truncated with an option to open the log in a separate window. Stack traces are truncated to 20 frames, and will only show the first and last 10 frames for long traces. An important part of the truncation design was focused on <a href=\"https:\/\/developercommunity2.visualstudio.com\/t\/UI-hanfs-on-when-Test-Explorer-tries-to-\/582820\" target=\"_blank\" rel=\"noopener\">reducing VS freezes when test runs have large output<\/a>. Tests that have large output will no longer block the UI thread.<\/p>\n<h4>Navigate Links from Log Files<\/h4>\n<p>Test output can now preserve tags so hyperlinks and stacktrace links are navigable from the log files. These links are now keyboard friendly as well.<\/p>\n<p><figure id=\"attachment_232177\" aria-labelledby=\"figcaption_attachment_232177\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer2.png\"><img decoding=\"async\" class=\"size-full wp-image-232177\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer2.png\" alt=\"Hyperlinks and stacktrace links are now navigable and keyboard friendly.\" width=\"624\" height=\"202\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer2.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer2-300x97.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><figcaption id=\"figcaption_attachment_232177\" class=\"wp-caption-text\">Hyperlinks and stacktrace links are now navigable and keyboard friendly.<\/figcaption><\/figure><\/p>\n<h4>Automatically Create Log Files<\/h4>\n<p>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 now open in preview so it\u2019s easier to manage your tabs. Both the Test Explorer and log files support <strong>Ctrl PgUp\/PgDn<\/strong> for navigating the cursor and <strong>Shift + Ctrl PgUp\/PgDn<\/strong> for selection.<\/p>\n<p><figure id=\"attachment_232179\" aria-labelledby=\"figcaption_attachment_232179\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer4.png\"><img decoding=\"async\" class=\"size-full wp-image-232179\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer4.png\" alt=\"Automatic log file with preview and links.\" width=\"624\" height=\"213\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer4.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-test-explorer4-300x102.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><figcaption id=\"figcaption_attachment_232179\" class=\"wp-caption-text\">Automatic log file creation with links, previewing, and selection!<\/figcaption><\/figure><\/p>\n<p>The log file editor now uses the IVsTextView interface and can now open very large text files. This should eliminate the need for users to &#8220;Copy All&#8221; truncated logs and open them in a separate editor. For MSTest, we also include a single log file that aggregates output instead of having individual log files for each data row.<\/p>\n<h2>Git Productivity<\/h2>\n<p>We\u2019ve continued to enhance the Git tooling in Visual Studio and are excited to announce some long-awaited updates. We&#8217;ve improved how you switch repositories, view commits, interact with diffs, and synchronize your branches.<\/p>\n<p>The status bar now features an enhanced branch picker, a repository picker, and a sync button. Select a commit to open an embedded view of its details and the file changes in the Git Repository window without having to navigate to other windows. You can compare commits in the same way! This view also allows you to pop out commits into their own windows if you want to deep-dive into changes.<\/p>\n<p>Finally, the Git Changes window has a new overflow menu with commands to manage remotes, push tags, and manage branches. Get a walkthrough of all these features and more, in our latest <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/enhanced-productivity-with-git-in-visual-studio\/\">Git blog post<\/a>.<\/p>\n<p><figure id=\"attachment_232230\" aria-labelledby=\"figcaption_attachment_232230\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-git.gif\"><img decoding=\"async\" class=\"wp-image-232230\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-git.gif\" alt=\"Enhanced Git tooling in 16.10 preview 2\" width=\"746\" height=\"421\" \/><\/a><figcaption id=\"figcaption_attachment_232230\" class=\"wp-caption-text\">Git tooling enhancements make it easier to manage repos, branches, and interact with diffs! See <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/04\/16.10-p2-git.gif\" target=\"_blank\" rel=\"noopener\">full size<\/a>.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\" target=\"_blank\">Install Visual Studio 2019 v16.10<\/a><\/div><\/p>\n<p>Visual Studio 2019 16.10 preview 2 adds a nice collection of productivity-enhancements for all Visual Studio users. <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\" target=\"_blank\" rel=\"noopener\">Download the preview today<\/a> to try out the new features and don\u2019t forget to <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/report-a-problem?view=vs-2019\" target=\"_blank\" rel=\"noopener\">report a problem<\/a> or <a href=\"https:\/\/developercommunity2.visualstudio.com\/home\" target=\"_blank\" rel=\"noopener\">give us feedback on Developer Community<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We\u2019ve added C++20 ranges, IntelliSense completions, and new features for testing, Docker, and Git integration!<\/p>\n","protected":false},"author":56570,"featured_media":228872,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[229,6796,3249,3286,6758,336,1664,1666],"class_list":["post-232075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-accessibility","tag-c-conformance","tag-containers","tag-docker","tag-git-integration","tag-intellisense","tag-refactoring","tag-testing"],"acf":[],"blog_post_summary":"<p>We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We\u2019ve added C++20 ranges, IntelliSense completions, and new features for testing, Docker, and Git integration!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/232075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/56570"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=232075"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/232075\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/228872"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=232075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=232075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=232075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}