{"id":239349,"date":"2022-09-14T10:23:36","date_gmt":"2022-09-14T17:23:36","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=239349"},"modified":"2022-09-20T10:35:20","modified_gmt":"2022-09-20T17:35:20","slug":"visual-studio-2022-17-4-preview-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2022-17-4-preview-2\/","title":{"rendered":"Visual Studio 2022 17.4 Preview 2"},"content":{"rendered":"<p>We have released Visual Studio 2022 17.4 Preview 2. In this post we&#8217;ll share details about features added since <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2022-17-4-preview-1\/\">Preview 1<\/a>. Feedback from developers like you during our preview cycle is so important for us to deliver a final product that meets your high expectations. We welcome your feedback in the threads to this post or through <a href=\"https:\/\/developercommunity.visualstudio.com\/home\">Developer Community<\/a>. Please continue to share your\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/report?space=8&amp;entry=suggestion\">suggestions for new features<\/a>\u00a0or improvements to existing ones and any bugs or issues via\u00a0<a href=\"https:\/\/docs.microsoft.com\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio\">report a problem<\/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\">Download Visual Studio 2022 17.4 Preview 2<\/a><\/div><\/p>\n<p>We\u2019ve <a href=\"https:\/\/developercommunity.visualstudio.com\/search?q=%5BFixed+In%3A+Visual+Studio+2022+version+17.4+Preview+2%5D\">addressed a number of your top-reported bugs in this release<\/a> and added new features based on your suggestions in Developer Community. Thank you for your continued feedback. Here\u2019s a list of your suggestion we are shipping as part of this preview.<\/p>\n<ul>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/idea\/395028\/introduce-the-ability-to-roll-back-a-visual-studio.html\">Introduce the ability to roll back a Visual Studio Update<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/idea\/351156\/allow-multiple-git-repositories-to-be-active-at-on.html\">Allow multiple Git repositories to be active at once<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/idea\/744285\/adding-a-button-to-test-explorer-to-reset-the-test.html\">Adding a button to Test Explorer to reset the tests to &#8220;Not Run&#8221;<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/idea\/793209\/cmake-weird-test-name-prefix.html\">CMake weird test name prefix<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/idea\/548880\/movingmigrating-from-preview-channel-to-release-ch.html\">Moving\/migrating from preview channel to release channel of Visual Studio 2019 installation<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Arm64-support-for-Nodejs\/10107705\">Arm64 support for Node.js<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/idea\/485527\/c-android-development-gradle.html\">C++ Android development &#8211; gradle<\/a>\u200b\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Arm64-support-for-Visual-Studio-SDK\/10107690\">Arm64 support for Visual Studio SDK<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Feedback-on-the-rollback-feature-introdu\/10103571\">Feedback on the rollback feature introduced in VS 2022 version 17.4 P1<\/a>\u200b<\/li>\n<li><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Arm64-support-for-Game-Development-with-\/10107702\">Arm64 support for Game Development with C++<\/a><\/li>\n<\/ul>\n<h2>Enterprise Support<\/h2>\n<p>In <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/introducing-visual-studio-administrator-updates\/\">April 2021, Visual Studio started making updates available for IT administrators to deploy throughout their networked organization using WSUS and SCCM<\/a>.\u00a0 We\u2019re happy to announce that Visual Studio security updates will soon become available to modern cloud connected Azure Active Directory (AAD joined) devices that use <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/deployment\/update\/waas-manage-updates-wufb\">Windows Update for Business<\/a> (WUfB) and are managed by mobile device management solutions such as Microsoft Endpoint Manager (formerly known as Intune). \u00a0You can now \u201cpreview\u201d this experience and receive our September 2022 security releases on AAD joined devices by doing the following:<\/p>\n<ol>\n<li>Enable and enroll the cloud connected AAD joined device into Windows Update for Business. In particular, the <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/client-management\/mdm\/policy-csp-update#update-allowmuupdateservice\">AllowMUUpdateService policy<\/a> must be turned on.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/install\/enabling-administrator-updates?WT.mc_id=visualstudio_install_aka_enableadminupdates&amp;view=vs-2022#encoding-administrator-intent-on-the-client-machines\">Enable the Visual Studio policy AdministratorUpdatesEnabled<\/a> on the client machine.<\/li>\n<li>Create the temporary REG_DWORD key on the client:\n<span style=\"font-size: 12pt;\"><sup>HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\Setup\\PreviewAutomaticUpdates = 1<\/sup><\/span><\/li>\n<\/ol>\n<p>If the WUfB client device is configured to receive Visual Studio updates as described above, then when the Windows check for updates event occurs, Visual Studio updates will be downloaded and installed.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/winupdatewithvs.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239350\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/winupdatewithvs.jpg\" alt=\"Screenshot of Windows Update with Visual Studio updates\" width=\"381\" height=\"213\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/winupdatewithvs.jpg 381w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/winupdatewithvs-300x168.jpg 300w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/a><\/p>\n<p>There are a few important details about this new Visual Studio update experience for cloud connected WUfB devices that you should be mindful of. These updates are delivered through the Windows Update advanced option to \u201cReceive updates for other Microsoft products\u201d; hence the need to enable the AllowMUUpdateService policy. <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/deployment\/update\/waas-manage-updates-wufb#types-of-updates-managed-by-windows-update-for-business\">WUfB treats these updates from other Microsoft products as Quality updates<\/a>, so they should respect all the other WUfB Quality update policy settings. If Visual Studio is in use, then the update will be blocked and will likely retry at a later point depending on your WUfB settings. And finally, at least for now, only security updates for all supported versions of Visual Studio will be delivered through this mechanism.<\/p>\n<p>Delivering updates through this important channel takes us one significant step forward in our pursuit of enabling enterprises to easily stay secure.\u00a0 We <a href=\"https:\/\/aka.ms\/vs\/ccupdates\/feedback\">welcome your feedback here<\/a>.<\/p>\n<h2>Arm64<\/h2>\n<p>We have made significant progress bringing additional components and workloads to the native Arm64 Visual Studio experience. This includes the highly anticipated native performance improvements for the Windows SDK (includes Win UI 2 and UWP) as well as support for Win App SDK (Win UI 3)!<\/p>\n<p>Preview 2 also includes support for the following workloads:<\/p>\n<ul>\n<li>Visual Studio extension development<\/li>\n<li>Game development with C++<\/li>\n<li>js development<\/li>\n<\/ul>\n<p>Please continue to <a href=\"https:\/\/developercommunity.visualstudio.com\/search?space=8&amp;q=%5BARM64%5D&amp;stateGroup=active&amp;ftype=idea&amp;sort=relevance\">vote here<\/a> on the workloads, components, and experiences that are most valuable to you!<\/p>\n<h2>Collaboration and Teams<\/h2>\n<p>Visual Studio enables collaboration for developers whether that is between individuals, part of contributing or using open source projects, and enabling your team to accomplish more.<\/p>\n<h2>Multi-Repo Network Operations<\/h2>\n<p>You can now Fetch, Pull, Push, and Sync more easily in your multi-repository scenarios with an improved UI. Filter to a single repo in the network operations dialog to get more control over the operation.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239352\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo.png\" alt=\"screenshot of Push dialog with multiple repos\" width=\"1354\" height=\"558\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo.png 1354w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo-300x124.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo-1024x422.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/multirepo-768x317.png 768w\" sizes=\"(max-width: 1354px) 100vw, 1354px\" \/><\/a><\/p>\n<h2>GitHub Issues and ADO Work Item Integration<\/h2>\n<p>Enhanced GitHub and ADO integration allows you to query and reference GitHub Issues and ADO Work Items from your commits within Visual Studio! Type a # to see suggested items.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239353\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues.png\" alt=\"Screenshot of git changes dialog with issue number selection\" width=\"1326\" height=\"906\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues.png 1326w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues-300x205.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues-1024x700.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/gitchangeswithissues-768x525.png 768w\" sizes=\"(max-width: 1326px) 100vw, 1326px\" \/><\/a><\/p>\n<h2>Git branch switching performance enhancements<\/h2>\n<p>We have made improvements to:<\/p>\n<ul>\n<li>Utilized targeted in place solution updates and thus avoids solution reload for many scenarios.<\/li>\n<li>Improved Solution\/Project reload time by reducing many blocking operations.<\/li>\n<\/ul>\n<p>Learn more by viewing the following blog: <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/vs2022-performance-enhancements-git-branch-switching\/\">VS2022 Performance Enhancements: Git Branch Switching.<\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image007.gif\"><img decoding=\"async\" class=\"alignnone wp-image-239368 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image007.gif\" alt=\"Animation of before and after performance improvements of git branch switching in Visual Studio\" width=\"1920\" height=\"1080\" \/><\/a><\/p>\n<h2>Microsoft Teams Toolkit<\/h2>\n<p>Teams Toolkit for Visual Studio makes it simpler to create, run, and debug apps for Microsoft Teams using .NET. Using Teams Toolkit, you can create new apps using the Microsoft Teams App project template. Next, you can manage your Microsoft 365 account and automatically register and configure your app so that it&#8217;s ready to debug right from Visual Studio.<\/p>\n<p>If you want to host your app projects in Azure, Teams Toolkit for Visual Studio includes features that provision and deploy using an infrastructure-as-code approach with Bicep.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/teamsappdialog.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239355\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/teamsappdialog.png\" alt=\"Dialog for creating a new Teams application\" width=\"605\" height=\"416\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/teamsappdialog.png 605w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/teamsappdialog-300x206.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/p>\n<h2>Ecosystem<\/h2>\n<p>VisualStudio.Extensibility is a new extensibility model that lets you create more reliable, easier-to-write extensions.<\/p>\n<p>Phase 2 of this new model is here, now letting you write richer, non-language-based productivity extensions. VisualStudio.Extensibility also introduces new APIs where you can add custom tool windows, user notifications, and additional command types to your extensions!<\/p>\n<p>To learn more and to start writing your VisualStudio.Extensibility extensions, check out this <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visualstudio-extensibility\/\">blog post<\/a> and go to our <a href=\"https:\/\/github.com\/microsoft\/VSExtensibility\">VSExtensibility GitHub repo<\/a>!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/toolwindowexample.png\"><img decoding=\"async\" class=\"alignnone wp-image-239356 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/toolwindowexample.png\" alt=\"VisualStudio.Extensibility Tool Window Example\" width=\"669\" height=\"333\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/toolwindowexample.png 669w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/toolwindowexample-300x149.png 300w\" sizes=\"(max-width: 669px) 100vw, 669px\" \/><\/a><\/p>\n<h2>Productivity<\/h2>\n<p>Visual Studio has always been about developer productivity. We are constantly adding new language features to help you do more in your core edit-debug loop.<\/p>\n<h2>All-in-one Search<\/h2>\n<p>We are continuing to improve the performance, reliability, and accessibility of the All-In-One Search experience (Ctrl+Q for feature search, Ctrl+T for code search). In addition to files and images, previews now work for C++ types and members.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/allinonesearch.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239357\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/allinonesearch.png\" alt=\"All-in-one Search\" width=\"571\" height=\"359\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/allinonesearch.png 571w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/allinonesearch-300x189.png 300w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/a><\/p>\n<p>You can enable All-In-One Search: Tools &gt; Manage Preview Features &gt; &#8220;New Visual Studio Search experience (restart required)&#8221;.<\/p>\n<h2>Audio Cues for Line addition\/deletion<\/h2>\n<p>Recently, we made the first round of audio cues available for Visual Studio. These included breakpoints, warnings and errors. The feedback has been positive, and in this preview, we\u2019ve added two new sounds. When comparing two versions of a file, you\u2019ll hear two new audio cues when the caret arrives on a line that has been added or deleted.<\/p>\n<p>We chose these two audio cues based on customer feedback, so if you\u2019ve got more audio cues that you want to hear, let us know. We\u2019ve created a developer community <a href=\"https:\/\/developercommunity.visualstudio.com\/t\/More-Audio-cues-for-Visual-Studio\/1461176\">ticket<\/a> as a great place to start.<\/p>\n<h2>Markdown support<\/h2>\n<p>Visual Studio now has an early preview for editing and previewing markdown files. To enable markdown support, go to Tools &gt; Manage Preview Features and check the &#8220;Markdown language service&#8221; option.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239358\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs.png\" alt=\"Visual Studio showing a markdown file being edited. The editor is divided in half with the raw markdown code on the left and the processed HTML being displayed on the right.\" width=\"1430\" height=\"940\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs.png 1430w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs-300x197.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs-1024x673.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/markdowninvs-768x505.png 768w\" sizes=\"(max-width: 1430px) 100vw, 1430px\" \/><\/a><\/p>\n<p>If you&#8217;ve enabled the Markdown language service option but don&#8217;t see the markdown editor, right click any .md file in the solution explorer and select &#8220;Open With&#8230;&#8221;. In the Open With dialog, select &#8220;Visual Studio Markdown Editor&#8221; and hit OK. The Set as Default button in the Open With dialog can also be used to ensure that all .md files will use the Visual Studio Markdown Editor in the future.<\/p>\n<p>To enable the preview of the HTML, click the small Preview button at the bottom right corner of the document. We\u2019ve got more improvements that we want to do, but we want to make this available for users today.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/mdbtmright.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239359\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/mdbtmright.png\" alt=\"The bottom right corner of the Visual Studio editor when editing a markdown document. The Preview button is marked with a yellow rectangle.\" width=\"534\" height=\"200\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/mdbtmright.png 534w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/mdbtmright-300x112.png 300w\" sizes=\"(max-width: 534px) 100vw, 534px\" \/><\/a><\/p>\n<p>If you have feedback that you\u2019d like to share, please head to <a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Feedback-on-the-Preview-Markdown-Editing\/10134757\">this developer community ticket<\/a> and join the conversation.<\/p>\n<h2>DataTable Visualizer<\/h2>\n<p>We are continuing to improve our debugger visualizer experiment by extending all the advanced features of\u00a0 <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/ienumerable-visualizer-improvements\/\">IEnumerable visualizer<\/a> such as filtering, sorting, theming, and exporting to the DataTable visualizer.<\/p>\n<p>The DataTable Visualizer will now also allow you to filter data based on the desired filter string. It will return all the rows that contain a value that matches the filter string.<\/p>\n<p>To export the data export in CSV\/Excel format using the dropdown on the top right corner. You can also export the filtered and sorted results in CSV\/Excel format. Finally, the visualizer window will be themed as per your selected Visual Studio theme.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/17.4_DataTable_Visualizer.gif\"><img decoding=\"async\" class=\"alignnone wp-image-239367 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/17.4_DataTable_Visualizer.gif\" alt=\"Animation showing data table visualizer in Visual Studio\" width=\"960\" height=\"737\" \/><\/a><\/p>\n<h2>Exception Stack frames in Call Stack Window<\/h2>\n<p>The new Exception stack frames inside the Call Stack window will provide all functionalities of the actual call stack.<\/p>\n<p>It will provide features like automatic navigation, quickly switching back and forth between frames, and symbol load \/ decompile options to get back to the source code where the exception was thrown.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/exceptionstack.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239361\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/exceptionstack.png\" alt=\"Exception stack view in Visual Studio\" width=\"673\" height=\"357\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/exceptionstack.png 673w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/exceptionstack-300x159.png 300w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/a><\/p>\n<h2>Unit Testing Performance<\/h2>\n<p>Major performance improvements in test discovery and test run workflows.<\/p>\n<h3>Parallel Test discovery<\/h3>\n<p>In solutions with multiple test projects, the Test Explorer now discovers tests present in different test projects in parallel. This means tests are discovered and displayed in the Test Explorer much faster! In our tests, we&#8217;ve seen test discovery complete **twice as fast** on a large solution with greater than 150 projects and close to 300K tests (*on a machine with 10 CPU cores).<\/p>\n<h3>Efficient parallelization of test runs<\/h3>\n<p>Test assemblies are now optimally parallelized across Target Frameworks and Architectures resulting in test runs that are **three times faster** on a large solution with greater than 150 projects.<\/p>\n<h3>Optimized communication between VS and test runner processes<\/h3>\n<p>The test runner process connections are now established sooner. This means saving around **1 second** on average per test assembly included in the test run. This leads to significant speed up for test runs involving a small number of tests. The communication between test runners and VS has also been tuned to be less chatty and more efficient. This leads to noticeable improvement especially for test discovery (**up to 30% speed gain** in many cases).<\/p>\n<h2>Clear Test Results and Filters in Test Explorer<\/h2>\n<p>The\u00a0Test\u00a0Explorer\u00a0now\u00a0has\u00a0a\u00a0way\u00a0to\u00a0clear\u00a0results\u00a0for\u00a0a\u00a0test\u00a0or\u00a0list\u00a0of\u00a0tests.\u00a0Whether\u00a0you\u00a0are\u00a0switching\u00a0branches\u00a0or\u00a0bringing\u00a0focus\u00a0to\u00a0a\u00a0set\u00a0of\u00a0test\u00a0results\u00a0that\u00a0matter\u00a0or\u00a0want\u00a0to\u00a0declutter\u00a0old\u00a0test\u00a0results,\u00a0you\u00a0can\u00a0start\u00a0from\u00a0a\u00a0clean\u00a0slate.\u00a0You\u00a0can\u00a0clear\u00a0test\u00a0results\u00a0on\u00a0a\u00a0test\u00a0or\u00a0a\u00a0list\u00a0of\u00a0tests\u00a0in\u00a0the\u00a0Test\u00a0Explorer. You\u00a0can\u00a0also\u00a0clear\u00a0test\u00a0results\u00a0from\u00a0the\u00a0top-level\u00a0Test\u00a0menu\u00a0if\u00a0all\u00a0results\u00a0need\u00a0to\u00a0be\u00a0cleared.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239362\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults.png\" alt=\"Sequence of images showing context menus for Test Explorer in Visual Studio\" width=\"1430\" height=\"491\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults.png 1430w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults-300x103.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults-1024x352.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testresults-768x264.png 768w\" sizes=\"(max-width: 1430px) 100vw, 1430px\" \/><\/a><\/p>\n<p>You\u00a0now\u00a0have\u00a0a\u00a0clear\u00a0indication\u00a0that\u00a0the\u00a0Test\u00a0Explorer\u00a0is\u00a0filtered\u00a0and\u00a0clear\u00a0all\u00a0test\u00a0filters\u00a0applied\u00a0with\u00a0a\u00a0single-click.\u00a0This\u00a0clears\u00a0filters\u00a0on\u00a0test\u00a0results\u00a0state\u00a0(or)\u00a0filters\u00a0on\u00a0columns\u00a0in\u00a0the\u00a0test\u00a0list\u00a0(or)\u00a0filters\u00a0in\u00a0the\u00a0search\u00a0box\u00a0(if\u00a0they\u00a0are\u00a0applied).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testexplorerfilter.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239363\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testexplorerfilter.png\" alt=\"Test Explorer menu highlighting options that show results are filtered\" width=\"794\" height=\"130\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testexplorerfilter.png 794w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testexplorerfilter-300x49.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/testexplorerfilter-768x126.png 768w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><\/a><\/p>\n<h2>.NET<\/h2>\n<h3>.NET 7.0 RC and MAUI<\/h3>\n<p>Visual Studio will now install .NET 7.0 RC1 as the default SDK and runtime. <span style=\"font-size: 1rem;\">This release includes support for .NET 7.0 RC1 MAUI, Android, iOS and related workloads.<\/span><\/p>\n<h3>Inline Rename<\/h3>\n<p>There is a new Inline Rename UI that allows you to easily rename a type. Press Ctrl+R,R to bring up the new Inline Rename experience. Notice that the new UI will now show up under the type with an option to rename comments, strings, and symbol files.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/inlinerename.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239364\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/inlinerename.png\" alt=\"Inline rename feature being used in Visual Studio\" width=\"579\" height=\"256\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/inlinerename.png 579w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/inlinerename-300x133.png 300w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><\/a><\/p>\n<h3>Option to disable Source Link and Embedded source<\/h3>\n<p>There is now an option to disable Source Link and Embedded source. You can disable this in Tools &gt; Options &gt; Text Editor &gt; C# &gt; Advanced and deselect Enable navigation to Source Link and Embedded sources.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/17.4_Disable_Source_Link.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239366\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/17.4_Disable_Source_Link.gif\" alt=\"Animation showing tools options menu for disabling source link in Visual Studio\" width=\"1197\" height=\"778\" \/><\/a><\/p>\n<h2>C++<\/h2>\n<h3>Dev Containers for C++ CMake projects<\/h3>\n<p>Visual Studio Code has had support for Dev Containers for some time now. Beginning in Visual Studio 2022 17.4 you can now use Dev Containers for your C++ projects as well. You can learn more about this feature in our <a href=\"https:\/\/aka.ms\/vscppdevcontainer\">Dev Containers for C++ blog post<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image027.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239369\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image027.png\" alt=\"Image image027\" width=\"744\" height=\"40\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image027.png 744w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image027-300x16.png 300w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><\/a><\/p>\n<h3>vcpkg environment activation<\/h3>\n<p>We have added support to Visual Studio for vcpkg artifacts with CMake projects. For projects that include a vcpkg manifest the environment will be activated automatically on project open. You can learn more about this in the <a href=\"https:\/\/aka.ms\/vsvcpkgenv\">vcpkg environment activation in Visual Studio blog post<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image029.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-239370\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image029.png\" alt=\"Background notification that vcpkg environment has been activated\" width=\"673\" height=\"381\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image029.png 673w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/09\/image029-300x170.png 300w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/a><\/p>\n<h3>IntelliSense improvements<\/h3>\n<p>Made IntelliSense respect the order of preincluded headers when one is a PCH. Previously, when a PCH was used via \/Yu and force-included via \/FI, IntelliSense would always process it first, before any other headers included via \/FI. This did not match the build behavior, so with this change \/FI headers are processed in the order they are specified.<\/p>\n<h3>C++ Standardization<\/h3>\n<p>We added vectorized implementations of ranges::min_element(), ranges::max_element(), and ranges::minmax_element().<\/p>\n<p>We continue to track the latest developments in C++ standardization. In 17.4 Preview 2 we have added support for the following C++ 23 features. You can enable these by including \/std:c++latest in your <a href=\"https:\/\/docs.microsoft.com\/cpp\/build\/reference\/compiler-options?view=msvc-170\">compiler options<\/a>.<\/p>\n<ul>\n<li><a href=\"https:\/\/wg21.link\/P2302R4\">P2302<\/a>ranges::contains,\u00a0ranges::contains_subrange<\/li>\n<li><a href=\"https:\/\/wg21.link\/P2499R0\">P2499<\/a>string_view\u00a0Range Constructor Should Be\u00a0explicit<\/li>\n<\/ul>\n<h3>CMake improvements<\/h3>\n<p>We have updated the version of CMake shipped with Visual Studio to version 3.24.1. See the\u00a0<a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/release\/3.24.html\">CMake release notes<\/a>\u00a0for what is available.<\/p>\n<p>We have removed internal prefixes from CTest names in Test Explorer.<\/p>\n<h3>Android SDK update<\/h3>\n<p>Ant scripts have been removed, so users will no longer see Ant-based templates in the New Project dialog. For help migrating from Ant templates to Gradle templates, please see: Migrating Builds From Apache Ant (<a href=\"http:\/\/gradle.org\/\">gradle.org<\/a>\u00a0)<\/p>\n<p>We have also updated the NDK component to the LTS version 23 and added support for building with NDK 23 and 24.<\/p>\n<h2>Share your feedback and help us build a better Visual Studio!<\/h2>\n<p>As you use Visual Studio, let us know what you love, what you like, and where you\u2019d like us to improve. You can share feedback with us via\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/home\">Developer Community:<\/a>\u00a0report any bugs or issues via\u00a0<a href=\"https:\/\/docs.microsoft.com\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio\">report a problem<\/a>\u00a0and share your\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/report?space=8&amp;entry=suggestion\">suggestions for new features<\/a>\u00a0or improvements to existing ones.<\/p>\n<p>As always, we appreciate the time you\u2019ve spent reporting issues and hope you continue to give us feedback on how we\u2019re doing and what we can improve.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have released Visual Studio 2022 17.4 Preview 2. In this post we&#8217;ll share details about features added since Preview 1. Feedback from developers like you during our preview cycle is so important for us to deliver a final product that meets your high expectations. We welcome your feedback in the threads to this post [&hellip;]<\/p>\n","protected":false},"author":677,"featured_media":239357,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[],"class_list":["post-239349","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio"],"acf":[],"blog_post_summary":"<p>We have released Visual Studio 2022 17.4 Preview 2. In this post we&#8217;ll share details about features added since Preview 1. Feedback from developers like you during our preview cycle is so important for us to deliver a final product that meets your high expectations. We welcome your feedback in the threads to this post [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/239349","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\/677"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=239349"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/239349\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/239357"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=239349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=239349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=239349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}