{"id":231706,"date":"2021-03-02T09:11:32","date_gmt":"2021-03-02T17:11:32","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=231706"},"modified":"2021-03-11T12:51:13","modified_gmt":"2021-03-11T20:51:13","slug":"vs2019-v16-9-and-v16-10-preview-1","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/vs2019-v16-9-and-v16-10-preview-1\/","title":{"rendered":"Visual Studio 2019 v16.9 and v16.10 Preview 1 are Available Today!"},"content":{"rendered":"<p>Whenever there is a conference such as <a href=\"https:\/\/myignite.microsoft.com\/home\">Microsoft Ignite<\/a>, there is a tangible excitement throughout our internal teams. We look forward to discovering what new, exciting products, product features, and educational opportunities are available for our customers. Carrying this excitement forward, the Visual Studio team is eager to release Visual Studio 2019 v16.9 and v16.10 Preview 1. We hope you enjoy the new features highlighted from some of teams such as C++, .NET Productivity, Address Sanitizer, XAML Tooling, and IntelliCode teams. \u00a0In addition, Visual Studio 2019 v16.9 is our next long-term <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/productinfo\/vs-servicing-vs\">servicing release<\/a>.<\/p>\n<p>While you enjoy some of our virtual conference sessions, feel free to <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">download one of our latest releases<\/a> to give these new features a try.\u00a0 Also, we love to hear your feedback through our improved <a href=\"https:\/\/developercommunity2.visualstudio.com\/home\">Developer Community<\/a>. It is the first place our teams look for new ideas or to address any problems you may be experiencing. We look forward to interacting with you through our vibrant online community.<\/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\" target=\"_blank\">Install Visual Studio 2019 v16.9<\/a><\/div><\/p>\n<h3>What&#8217;s New in Visual Studio 2019 v16.9?<\/h3>\n<h4>Address Sanitizer with C++<\/h4>\n<p>First up on our announcements is<a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fdevblogs.microsoft.com%2Fcppblog%2Faddress-sanitizer-for-msvc-now-generally-available%2F&amp;data=04%7C01%7CJacqueline.Widdis%40microsoft.com%7C4407c6be5a064e231d2708d8e2ea3df8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637508843010778221%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EfVAReIDSLK04u4BgVI%2B4itW%2B59bmiXW%2Bvd%2BrcMf148%3D&amp;reserved=0\"> Address Sanitizer support for Windows<\/a> is out of experimental support and now generally available. The highlight change is MSVC can now work out which runtime libraries are needed to use ASan with your project. Consequently, you no longer need to supply them when compiling from the command-line. All you need to do is set\u00a0<strong>\/fsanitize=address<\/strong> and our tools will work out the rest of the details.<\/p>\n<p>Additionally, the IDE integration for ASan-reported exceptions (<strong>vcasan.lib<\/strong>) now handles the complete collection of reportable ASan exceptions. If the compiler and linker detect you are building with ASan but not receiving debug information, it will offer the option to emit this information.<\/p>\n<p>Finally, we have added support for global C variables and\u00a0<strong>__declspec(no_sanitize_address)<\/strong>. This makes it possible to opt out of running the Address Sanitizer over specific variables or even entire functions.<\/p>\n<h4>C++ Conformance<\/h4>\n<p>We have implemented the <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2019\/p0784r7.html\">More Constexpr Containers<\/a> proposals which allows destructors and new expressions to be\u00a0<strong>constexpr<\/strong>. We are excited about this as it paves the way for utilities like <strong>constexpr std::vector<\/strong> and\u00a0<strong>std::string<\/strong>. Included in our implementation in this release are compiler diagnostics for uses which trigger undefined behavior.<\/p>\n<h4>C++ IntelliSense<\/h4>\n<p>Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so please keep them coming! While we were working on stability, we also added extra functionality. As a result, we can highlight\u00a0<strong>Go-to-definition<\/strong> on module imports, indexing support for export {&#8230;}, and more accurate module reference for those with identical names.<\/p>\n<p><figure id=\"attachment_231870\" aria-labelledby=\"figcaption_attachment_231870\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACppIntelliSense.png\"><img decoding=\"async\" class=\"size-full wp-image-231870\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACppIntelliSense.png\" alt=\"Go-to-definition on Module Imports in Visual Studio 2019 v16.9\" width=\"500\" height=\"253\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACppIntelliSense.png 500w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACppIntelliSense-300x152.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"figcaption_attachment_231870\" class=\"wp-caption-text\">Go-to-definition on Module Imports in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<p>As implementation of a top-voted Developer Community suggestion ticket, we added completion for\u00a0<strong>make_unique<\/strong>,\u00a0<strong>make_shared<\/strong>, and\u00a0<strong>emplace_back<\/strong>. These provide text completion based on the specified type parameter.<\/p>\n<p>Additionally, Visual Studio 2019 can configure IntelliSense in CMake projects based on the value of CMake variables set by toolchain files. This greatly improves IntelliSense for Android and other embedded scenarios. The CMakeSettings.json file is the location to specify your custom IntelliSense options.<\/p>\n<h4>Improved Call Stack Handling of Stack Overflow Scenarios<\/h4>\n<p>Visual Studio 2019 has a new capability to filter out redundant frames from the call stack when the debugger stops on a <em>Stack Overflow Exception<\/em>. It is now possible to see the base of the stack where an infinite recursion originated. This should make it easier to investigate these types of bugs.<\/p>\n<p><figure id=\"attachment_231871\" aria-labelledby=\"figcaption_attachment_231871\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACallStackHandling.png\"><img decoding=\"async\" class=\"size-full wp-image-231871\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACallStackHandling.png\" alt=\"Improved Call Stack Handling in Visual Studio 2019 v16.9\" width=\"571\" height=\"313\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACallStackHandling.png 571w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GACallStackHandling-300x164.png 300w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/a><figcaption id=\"figcaption_attachment_231871\" class=\"wp-caption-text\">Improved Call Stack Handling in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h4>New .NET Core Memory Dump Analyzers<\/h4>\n<p>Deadlocks generally occur when thread A is waiting for thread B to release a lock. Simultaneously, thread B is waiting for thread A to release a lock. This conundrum caused us to add a new Auto Analyzer to inspect the threads in a memory dump to determine if an unresponsive application is due to one of these deadlocks. A blocked finalizer can lead to abnormal memory growth which. This, in turn, can lead to system instability due to out of memory exceptions. Our new Analyzer inspects the .NET Core Finalizer queue to help you identify potential blocking objects in a memory dump.<\/p>\n<p><figure id=\"attachment_231872\" aria-labelledby=\"figcaption_attachment_231872\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer.png\"><img decoding=\"async\" class=\"size-full wp-image-231872\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer.png\" alt=\"New Memory Dump Analyzers in Visual Studio 2019 v16.9\" width=\"1314\" height=\"704\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer.png 1314w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer-300x161.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer-1024x549.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAAnalyzer-768x411.png 768w\" sizes=\"(max-width: 1314px) 100vw, 1314px\" \/><\/a><figcaption id=\"figcaption_attachment_231872\" class=\"wp-caption-text\">New Memory Dump Analyzers in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<p>To access the Analyzer, open your memory dump in Visual Studio 2019. On the Mini Dump File Summary page, select the\u00a0<strong>Run Diagnostics Analysis<\/strong> action.<\/p>\n<h4>IntelliCode: Frictionless Suggestions in the Completions List<\/h4>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/making-repeated-edits-easier-with-intellicode-suggestions\">IntelliCode suggestions<\/a> already helps you find other locations where a repeated edit applies. Comparatively, in Visual Studio 2019 v16.9, you can easily apply suggestions in a more frictionless way and without breaking your editing flow. You can find IntelliCode suggestions right in your IntelliSense completion list. From there, you are also able to find and apply the same change in other locations. This new functionality in the completion list should blend naturally into your editing flow. The edit is added to the completion list in a non-intrusive way. This makes edits easy to find and perform repetitious actions.<\/p>\n<p>Find out more in <a href=\"https:\/\/aka.ms\/vsic\/suggestions\/blog\/completions\">the blog post<\/a> from the team who wrote the feature.<\/p>\n<p><figure id=\"attachment_231875\" aria-labelledby=\"figcaption_attachment_231875\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAIntelliCode2.gif\"><img decoding=\"async\" class=\"size-full wp-image-231875\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAIntelliCode2.gif\" alt=\"IntelliCode: Frictionless Suggestions in Visual Studio 2019 v16.9\" width=\"1000\" height=\"260\" \/><\/a><figcaption id=\"figcaption_attachment_231875\" class=\"wp-caption-text\">IntelliCode: Frictionless Suggestions in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h4><\/h4>\n<h4>.NET Productivity<\/h4>\n<p>From our .NET team, we bring you several features to help with continual improvements in productivity. First on the list, using directives will now automatically be added when copying and pasting types to a new file. To give this a try, you will need to turn on this option under <strong>Tools &gt; Options &gt; Text Editor &gt; C#<\/strong>. You can also access it from\u00a0<strong>Basic &gt; Advanced<\/strong> and select\u00a0<strong>Add missing using directives on paste<\/strong>.<\/p>\n<p><figure id=\"attachment_231876\" aria-labelledby=\"figcaption_attachment_231876\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETDirectives.gif\"><img decoding=\"async\" class=\"size-full wp-image-231876\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETDirectives.gif\" alt=\"Using Directives Automatically Added in Visual Studio 2019 v16.9\" width=\"1352\" height=\"884\" \/><\/a><figcaption id=\"figcaption_attachment_231876\" class=\"wp-caption-text\">Using Directives Automatically Added in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h3><\/h3>\n<p>We have also added inline type hints that insert adornments for variables with inferred types and lambda parameter types. Like the last feature, you will need to turn this feature on under the menu <strong>Tools &gt; Options &gt; Text Editor &gt; C#<\/strong> or again under\u00a0<strong>Basic &gt; Advanced &gt; Display inline type hints<\/strong>. This last option is under the Inline Hints section. Hold down <strong>Alt+F1<\/strong> to view hints at any time.<\/p>\n<p><figure id=\"attachment_231877\" aria-labelledby=\"figcaption_attachment_231877\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETInlineHints.png\"><img decoding=\"async\" class=\"size-full wp-image-231877\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETInlineHints.png\" alt=\"Inline Type Hints in Visual Studio 2019 v16.9\" width=\"624\" height=\"205\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETInlineHints.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GANETInlineHints-300x99.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><figcaption id=\"figcaption_attachment_231877\" class=\"wp-caption-text\">Inline Type Hints in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h3><\/h3>\n<p>In addition, there is now IntelliSense completion that automatically inserts a semicolon as a commit character for object creation and method completion.<\/p>\n<p><figure id=\"attachment_231878\" aria-labelledby=\"figcaption_attachment_231878\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GATestExplorer.gif\"><img decoding=\"async\" class=\"size-full wp-image-231878\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GATestExplorer.gif\" alt=\"Automatic Semicolon Insertion in Visual Studio 2019 v16.9\" width=\"1352\" height=\"884\" \/><\/a><figcaption id=\"figcaption_attachment_231878\" class=\"wp-caption-text\">Automatic Semicolon Insertion in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h4><\/h4>\n<h3>.NET Core Debugging with WSL 2<\/h3>\n<p>Are you a .NET Core developer who loves working in Windows and Visual Studio, but needs to test your app in Linux? If so, the new .NET Core debugging in WSL 2 feature is something you will want to try out! It enables you to debug your code in WSL 2 using the Linux distro of your choice.<\/p>\n<p><figure id=\"attachment_231103\" aria-labelledby=\"figcaption_attachment_231103\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GANETCoreDebugging.gif\"><img decoding=\"async\" class=\"size-large wp-image-231103\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GANETCoreDebugging-1024x576.gif\" alt=\".NET Core Debugging with WSL 2 in Visual Studio 2019 v16.9 Preview 1\" width=\"640\" height=\"360\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GANETCoreDebugging-1024x576.gif 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GANETCoreDebugging-300x169.gif 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GANETCoreDebugging-768x432.gif 768w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_231103\" class=\"wp-caption-text\">.NET Core Debugging with WSL 2 in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<p>After installing <a href=\"https:\/\/aka.ms\/wsl2\">WSL 2<\/a>\u00a0and the\u00a0<a href=\"https:\/\/aka.ms\/wslstore\">distribution<\/a> of your choice and opening an ASP.NET Core web app or .NET Core console app in Visual Studio, you\u2019ll see a new Launch Profile named <strong>WSL 2<\/strong>.<\/p>\n<p><figure id=\"attachment_231110\" aria-labelledby=\"figcaption_attachment_231110\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GAWSL2.png\"><img decoding=\"async\" class=\"size-full wp-image-231110\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/11\/168GAWSL2.png\" alt=\"Adding Launch Profile WSL 2 in Visual Studio 2019 v16.9 Preview 1\" width=\"295\" height=\"138\" \/><\/a><figcaption id=\"figcaption_attachment_231110\" class=\"wp-caption-text\">Adding Launch Profile WSL 2 in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<p>Selecting this profile will add it to your launchSettings.json. Once the new profile is selected, Visual Studio checks that your WSL 2 distribution is configured to run .NET Core apps, and helps you install any missing dependencies. As soon as all the dependencies are installed, you are ready to debug WSL 2. From here, you can start Debugging as normal, and your app will now be running in your default WSL 2 distribution. Check <a href=\"https:\/\/docs.microsoft.com\/dotnet\/api\/system.environment.osversion\">Environment.OSVersion <\/a>to verify the correct distribution.<\/p>\n<p>Note: Only Ubuntu and Debian have been tested and are currently supported. Other distributions supported by .NET Core should work but require manually installing the <a href=\"https:\/\/aka.ms\/wsldotnet\">.NET Core Runtime<\/a>\u00a0and\u00a0<a href=\"https:\/\/curl.haxx.se\/\">Curl<\/a>.<\/p>\n<p>By default, the WSL 2 launch profile will use the default distribution as set in wsl.exe, but you can modify your launch profile to include specific distributions. Adding extra functionality, you can also have multiple launch profiles. For instance, if you need to test your console app on Debian, Ubuntu 18.04, and Ubuntu 20.04, you could modify these settings.<\/p>\n<h4>XAML Tools (WPF, WinUI, UWP &amp; Xamarin.Forms<\/h4>\n<p><span data-contrast=\"auto\">In this release we\u2019ve\u00a0<\/span><span data-contrast=\"auto\">made<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">multiple improvements to our XAML toolin<\/span><span data-contrast=\"auto\">g, highlight<\/span><span data-contrast=\"auto\">s<\/span><span data-contrast=\"auto\">\u00a0include<\/span><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">For\u00a0<\/span><\/b><b><span data-contrast=\"auto\">MVVM Tooling<\/span><\/b><b><span data-contrast=\"auto\">\u00a0improvements<\/span><\/b><span data-contrast=\"auto\">\u00a0in the XAML code editor w<\/span><span data-contrast=\"auto\">e\u2019ve introduced\u00a0<\/span><span data-contrast=\"auto\">l<\/span><span data-contrast=\"auto\">ightbulbs to<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">set the design\u00a0DataContext\u00a0in XAML to an available\u00a0<\/span><span data-contrast=\"auto\">view-model<\/span><span data-contrast=\"auto\">. Setting this<\/span><span data-contrast=\"auto\">\u00a0enhances IntelliSense<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\">\u00a0such as the ability to create new\u00a0ViewModel\u00a0properties<\/span><span data-contrast=\"auto\">, Go\u00a0To\u00a0Definition and completions<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">right from<\/span><span data-contrast=\"auto\">\u00a0the<\/span><span data-contrast=\"auto\">\u00a0XAML code<\/span><span data-contrast=\"auto\">\u00a0editor<\/span><span data-contrast=\"auto\">.\u00a0<\/span><span data-contrast=\"auto\">You can even create new\u00a0<\/span><span data-contrast=\"auto\">ICommand\u00a0properties\u00a0<\/span><span data-contrast=\"auto\">for whichever implementation your solution references.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Xamarin.Forms\u00a0\u201cchanges only\u201d XAML Hot Reload is now GA quality, no longer in preview.\u00a0<\/span><\/b><span data-contrast=\"auto\">Apps targeting\u00a0Xamarin.Forms\u00a05.0 or newer will use this new mode by default.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The new \u201cchanges only\u201d XAML Hot Reload mechanism makes it possible to update your running app\u2019s UI in real-time and see those changes reflected immediately without requiring the full page to be reloaded, and without having to save the file. \u201cChanges only\u201d Hot Reload also supports the Live Visual Tree, so you can see the runtime UI hierarchy for your app and easily navigate to your XAML source code.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_231958\" aria-labelledby=\"figcaption_attachment_231958\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GALiveVisualTree.png\"><img decoding=\"async\" class=\"size-full wp-image-231958\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GALiveVisualTree.png\" alt=\"Live Visual Tree in Visual Studio 2019 v16.9\" width=\"371\" height=\"407\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GALiveVisualTree.png 371w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GALiveVisualTree-273x300.png 273w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/a><figcaption id=\"figcaption_attachment_231958\" class=\"wp-caption-text\">Live Visual Tree in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h4><\/h4>\n<p>For those customers who prefer to continue to use the older \u201cfull page\u201d Hot Reload you can still do so even for projects targeting Xamarin.Forms SDK v5 by going to the Hot Reload settings under Tools &gt; Options &gt; Debugging &gt; Hot Reload.<\/p>\n<p><i><span style=\"font-weight: normal !msorm;\">These are just two of our highlights, for a complete list of<\/span><\/i><i><span style=\"font-weight: normal !msorm;\"> XAML tooling<\/span><\/i><i><span style=\"font-weight: normal !msorm;\"> improvements please see the release notes.<\/span><\/i><\/p>\n<h4>Ding! Your Test Run is Complete!<\/h4>\n<p>One of the features we find particularly fun is how Test Explorer can play audio cues after a test run completes. This includes the option for different sounds for test runs with all tests passing and a different for test runs with at least one failing test. You are also able to fully customize these sounds using the Windows 10 sound library or your own audio files. To watch this in action, <a href=\"https:\/\/youtu.be\/VwIMIJgY3wk\">check out our demo<\/a>.<\/p>\n<h4>Improvements to GitHub Actions Tooling<\/h4>\n<p>In a previous post, <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/using-github-actions-in-visual-studio-is-as-easy-as-right-click-and-publish\/\">using GitHub Actions in Visual Studio is as easy as right-click and Publish<\/a>, we announced the efforts added to Visual Studio 2019 to extend our Publish experiences. Specifically, we sought to introduce and assist developers to repeatable, predictable continuous integration and deployment (CI\/CD) environments using GitHub Actions. In this release, we bring the following improvements:<\/p>\n<ul>\n<li>A redesigned summary page.<\/li>\n<li>An added new status section<\/li>\n<li>Commit and push the workflow with just one click<\/li>\n<\/ul>\n<p>In addition, these updated experiences also now recognize more project types. Plus, we will help you generate CI\/CD workflows for building, testing, deploying ASP.NET web projects to Azure App Service, Azure Functions, and Azure API Management.<\/p>\n<p><figure id=\"attachment_231879\" aria-labelledby=\"figcaption_attachment_231879\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAGitActions.png\"><img decoding=\"async\" class=\"size-full wp-image-231879\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAGitActions.png\" alt=\"GitHub Actions Tooling in Visual Studio 2019 v16.9\" width=\"632\" height=\"256\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAGitActions.png 632w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/169GAGitActions-300x122.png 300w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/a><figcaption id=\"figcaption_attachment_231879\" class=\"wp-caption-text\">GitHub Actions Tooling in Visual Studio 2019 v16.9<\/figcaption><\/figure><\/p>\n<h4><\/h4>\n<h3>What&#8217;s New in Visual Studio 2019 v16.10 Preview 1?<\/h3>\n<h4>.NET Productivity<\/h4>\n<p>Our .NET Productivity team has been working hard for this release!<\/p>\n<h5>Remove Unused References<\/h5>\n<p>We have added functionality through the <strong>Remove Unused References\u00a0<\/strong>command. This command allows you to clean up unused project references and NuGet packages. This option is turned off by default, but you can enable it under menu <strong>Tools &gt; Options &gt; Text Editor &gt; C# &gt; Advanced<\/strong>. Select the <strong><em>Remove Unused References<\/em><\/strong> command in Solution Explorer (Experimental). Once the option is enabled, the\u00a0<strong>Remove Unused References<\/strong> command will appear in the right-click menu of a project name or dependencies node.<\/p>\n<p><figure id=\"attachment_231882\" aria-labelledby=\"figcaption_attachment_231882\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SolutionExplorer.png\"><img decoding=\"async\" class=\"size-full wp-image-231882\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SolutionExplorer.png\" alt=\"Remove Unused References in Visual Studio 2019 v16.10 Preview 1\" width=\"480\" height=\"348\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SolutionExplorer.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SolutionExplorer-300x218.png 300w\" sizes=\"(max-width: 480px) 100vw, 480px\" \/><\/a><figcaption id=\"figcaption_attachment_231882\" class=\"wp-caption-text\">Remove Unused References in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>When you select\u00a0<strong>Remove Unused References<\/strong>, a dialog box will open. You can then view all references that are going to be removed, but you also have the option to preserve any you wish to keep.<\/p>\n<p><figure id=\"attachment_231883\" aria-labelledby=\"figcaption_attachment_231883\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemoveReferences.png\"><img decoding=\"async\" class=\"size-full wp-image-231883\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemoveReferences.png\" alt=\"Customize Removal of Unused References in Visual Studio 2019 v16.10 Preview 1\" width=\"960\" height=\"724\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemoveReferences.png 960w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemoveReferences-300x226.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemoveReferences-768x579.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><figcaption id=\"figcaption_attachment_231883\" class=\"wp-caption-text\">Customize Removal of Unused References in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h5>Simplify LINQ Expressions<\/h5>\n<p>Next, there is a refactoring to\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/reference\/simplify-linq-expression?view=vs-2019\"><strong>Simplify LINQ expressions<\/strong><\/a>. This will remove the unnecessary call to the Enumerable for the\u00a0<strong>.Where()<\/strong> method to help improve performance and readability. To access this feature, place your cursor on the\u00a0<strong>LINQ Expression<\/strong>, press (<strong>Ctrl+<\/strong>) to trigger the\u00a0<strong>Quick Actions and Refactorings<\/strong> menu. Select\u00a0<strong>Simplify LINQ expression<\/strong>.<\/p>\n<p><figure id=\"attachment_231884\" aria-labelledby=\"figcaption_attachment_231884\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions.png\"><img decoding=\"async\" class=\"size-full wp-image-231884\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions.png\" alt=\"Simplify LINQ Expressions in Visual Studio 2019 v16.10 Preview 1\" width=\"1248\" height=\"487\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions.png 1248w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions-300x117.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions-1024x400.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1QuickActions-768x300.png 768w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/a><figcaption id=\"figcaption_attachment_231884\" class=\"wp-caption-text\">Simplify LINQ Expressions in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h5>New Completion Options<\/h5>\n<p>Next, there is additional IntelliSense functionality by the added completion for Enum values when a type is known even if the Enum value is not entered.<\/p>\n<p><figure id=\"attachment_231885\" aria-labelledby=\"figcaption_attachment_231885\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName.png\"><img decoding=\"async\" class=\"size-full wp-image-231885\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName.png\" alt=\"IntelliSense Completion for Enum Values in Visual Studio 2019 v16.10 Preview 1\" width=\"1160\" height=\"473\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName.png 1160w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName-300x122.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName-1024x418.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1EnumName-768x313.png 768w\" sizes=\"(max-width: 1160px) 100vw, 1160px\" \/><\/a><figcaption id=\"figcaption_attachment_231885\" class=\"wp-caption-text\">IntelliSense Completion for Enum Values in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<h5><\/h5>\n<p>We have also added a new IntelliSense completion mode setting that gives you the ability to set default completion options. This new setting is available in<strong> Tools<\/strong> &gt; <strong>Options <\/strong>&gt; <strong>Text Editor<\/strong> &gt; <strong>Advanced<\/strong> &gt; <strong>Default IntelliSense completion mode<\/strong> where you can choose\u00a0 from the following options:<strong> Last used <\/strong>which will preserve the last setting you used with <em>Ctrl+Alt+Space<\/em>, <strong>Tab-only<\/strong> which will only complete on tab, and <strong>Automatic<\/strong> which is currently the default behavior that will complete on <a href=\"https:\/\/docs.microsoft.com\/cpp\/c-language\/punctuation-and-special-characters?view=msvc-160\">punctuation and special characters.<\/a><\/p>\n<p><figure id=\"attachment_231960\" aria-labelledby=\"figcaption_attachment_231960\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1IntelliSenseCompletion.png\"><img decoding=\"async\" class=\"size-full wp-image-231960\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1IntelliSenseCompletion.png\" alt=\"IntelliSense Completion Options in Visual Studio 2019 v16.10 Preview 1\" width=\"960\" height=\"318\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1IntelliSenseCompletion.png 960w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1IntelliSenseCompletion-300x99.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1IntelliSenseCompletion-768x254.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><figcaption id=\"figcaption_attachment_231960\" class=\"wp-caption-text\">IntelliSense Completion Options in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<h5><\/h5>\n<p>To continue to help you, we added a new command called <span style=\"font-weight: normal !msorm;\"><strong>Smart Break Line<\/strong><\/span> that automatically inserts a set of braces and adds the caret within those braces when using <strong><span style=\"font-style: normal !msorm;\">Shift<\/span>+<span style=\"font-style: normal !msorm;\">Enter<\/span><\/strong> 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\u00a0 a field. If the field doesn\u2019t have a semicolon at the end, typing <strong><span style=\"font-style: normal !msorm;\">Shift<\/span>+<\/strong><span style=\"font-style: normal !msorm;\"><strong>Enter<\/strong> <\/span>will convert the field to a property by adding a set of braces. One more use of<strong><span style=\"font-style: normal !msorm;\">Shift<\/span>+<span style=\"font-style: normal !msorm;\">Enter<\/span><\/strong><span style=\"font-style: normal !msorm;\"> will <\/span>undo the commit which will still automatically add a semicolon at the end of the field.<\/p>\n<p><figure id=\"attachment_231961\" aria-labelledby=\"figcaption_attachment_231961\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SmartBreakLine.gif\"><img decoding=\"async\" class=\"size-full wp-image-231961\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1SmartBreakLine.gif\" alt=\"Smart Break Lines in Visual Studio 2019 v16.10 Preview 1\" width=\"1196\" height=\"576\" \/><\/a><figcaption id=\"figcaption_attachment_231961\" class=\"wp-caption-text\">Smart Break Lines in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<h5><\/h5>\n<h5>New Code Style Preferences for New Lines<\/h5>\n<p>Finally, we have added new code style preferences for new lines. You can configure these preferences with an EditorConfig file or with\u00a0<strong>Tools &gt; Options &gt; Text Editor &gt; C# &gt; Code Style &gt; New line preferences (experimental)<\/strong>.<\/p>\n<p><figure id=\"attachment_231886\" aria-labelledby=\"figcaption_attachment_231886\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1CodeStyle.png\"><img decoding=\"async\" class=\"size-full wp-image-231886\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1CodeStyle.png\" alt=\"New Line Style Preferences in Visual Studio 2019 v16.10 Preview 1\" width=\"624\" height=\"155\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1CodeStyle.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1CodeStyle-300x75.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><figcaption id=\"figcaption_attachment_231886\" class=\"wp-caption-text\">New Line Style Preferences in Visual Studio 2019 v16.10 Preview 1<\/figcaption><\/figure><\/p>\n<p>As an example, you can set your code style preferences to report a diagnostic and offer a code fix to remove extra blank lines.<\/p>\n<p><figure id=\"attachment_231887\" aria-labelledby=\"figcaption_attachment_231887\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines.png\"><img decoding=\"async\" class=\"size-full wp-image-231887\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines.png\" alt=\"Remove Extra Blank Lines in Visual Studio 2019 v16.10 Preview 1\" width=\"1247\" height=\"568\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines.png 1247w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines-300x137.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines-1024x466.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/02\/1610P1RemBlankLines-768x350.png 768w\" sizes=\"(max-width: 1247px) 100vw, 1247px\" \/><\/a><figcaption id=\"figcaption_attachment_231887\" class=\"wp-caption-text\">Remove Extra Blank Lines in Visual Studio 2019 v16.10 Preview 1<\/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 Preview 1<\/a><\/div><\/p>\n<h4>Extended Support for Visual Studio 2019 v16.9<\/h4>\n<p>Visual Studio 2019 version 16.9 is the fourth supported servicing baseline for Visual Studio 2019. Consequently, Enterprise and Professional customers are encouraged to standardize on this version as it will provide a long term stable and secure development environment.\u00a0 As explained in more detail in our <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/productinfo\/vs-servicing-vs\">lifecycle and support policy<\/a>, version 16.9 will be supported with fixes and security updates for one year after the release of the next servicing baseline.<\/p>\n<p>Now that version 16.9 is available, version 16.7, our last released servicing baseline, will be supported for an additional year and will go out of support in April 2022. Prior minor versions 16.0, 16.1, 16.2, 16.3, 16.5, 16.6, and 16.8 are no longer under support.\u00a0 These intermediary releases received servicing fixes only until the next minor update was released.<\/p>\n<p>You can acquire the latest most secure version of Visual Studio 2019 version 16.9 in the downloads tab of the <a href=\"https:\/\/my.visualstudio.com\/downloads?q=Visual%20Studio%202019\">Subscriptions portal<\/a>.\u00a0 For more information about Visual Studio supported baselines, please review the <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/productinfo\/vs-servicing-vs\">support policy for Visual Studio 2019<\/a>.<\/p>\n<p>As you can see, we have been busy updating our product to bring more value and productivity to our developers. We hope you enjoy each of these features and look forward to hearing your suggestions for improvements on <a href=\"https:\/\/developercommunity2.visualstudio.com\/home\">Developer Community<\/a>. For now, I am going to settle into a few of our Ignite 2021 sessions where I hope to see you interacting online. As always, we wish you a happy Visual Studio 2019 experience with either our v16.9 or v16.10 Preview 1 release. This calendar year promises some very exciting announcements, so stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our team is eager to release Visual Studio 2019 v16.9 and v16.10 Preview 1. These include new features from our C++, .NET Productivity, XAML tooling, Address Sanitizer, and IntelliCode teams.<\/p>\n","protected":false},"author":4513,"featured_media":231882,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[354,6796,336,526,12,475],"class_list":["post-231706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-announcement","tag-c-conformance","tag-intellisense","tag-productivity","tag-visual-studio","tag-visual-studio-2019"],"acf":[],"blog_post_summary":"<p>Our team is eager to release Visual Studio 2019 v16.9 and v16.10 Preview 1. These include new features from our C++, .NET Productivity, XAML tooling, Address Sanitizer, and IntelliCode teams.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/231706","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\/4513"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=231706"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/231706\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/231882"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=231706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=231706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=231706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}