We have released Visual Studio 2022 17.4 Preview 2. In this post we’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 or through Developer Community. Please continue to share your suggestions for new features or improvements to existing ones and any bugs or issues via report a problem.
We’ve addressed a number of your top-reported bugs in this release and added new features based on your suggestions in Developer Community. Thank you for your continued feedback. Here’s a list of your suggestion we are shipping as part of this preview.
- Introduce the ability to roll back a Visual Studio Update
- Allow multiple Git repositories to be active at once
- Adding a button to Test Explorer to reset the tests to “Not Run”
- CMake weird test name prefix
- Moving/migrating from preview channel to release channel of Visual Studio 2019 installation
- Arm64 support for Node.js
- C++ Android development – gradle
- Arm64 support for Visual Studio SDK
- Feedback on the rollback feature introduced in VS 2022 version 17.4 P1
- Arm64 support for Game Development with C++
Enterprise Support
In April 2021, Visual Studio started making updates available for IT administrators to deploy throughout their networked organization using WSUS and SCCM. We’re happy to announce that Visual Studio security updates will soon become available to modern cloud connected Azure Active Directory (AAD joined) devices that use Windows Update for Business (WUfB) and are managed by mobile device management solutions such as Microsoft Endpoint Manager (formerly known as Intune). You can now “preview” this experience and receive our September 2022 security releases on AAD joined devices by doing the following:
- Enable and enroll the cloud connected AAD joined device into Windows Update for Business. In particular, the AllowMUUpdateService policy must be turned on.
- Enable the Visual Studio policy AdministratorUpdatesEnabled on the client machine.
- Create the temporary REG_DWORD key on the client: HKLM\SOFTWARE\Microsoft\VisualStudio\Setup\PreviewAutomaticUpdates = 1
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.
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 “Receive updates for other Microsoft products”; hence the need to enable the AllowMUUpdateService policy. WUfB treats these updates from other Microsoft products as Quality updates, 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.
Delivering updates through this important channel takes us one significant step forward in our pursuit of enabling enterprises to easily stay secure. We welcome your feedback here.
Arm64
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)!
Preview 2 also includes support for the following workloads:
- Visual Studio extension development
- Game development with C++
- js development
Please continue to vote here on the workloads, components, and experiences that are most valuable to you!
Collaboration and Teams
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.
Multi-Repo Network Operations
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.
GitHub Issues and ADO Work Item Integration
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.
Git branch switching performance enhancements
We have made improvements to:
- Utilized targeted in place solution updates and thus avoids solution reload for many scenarios.
- Improved Solution/Project reload time by reducing many blocking operations.
Learn more by viewing the following blog: VS2022 Performance Enhancements: Git Branch Switching.
Microsoft Teams Toolkit
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’s ready to debug right from Visual Studio.
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.
Ecosystem
VisualStudio.Extensibility is a new extensibility model that lets you create more reliable, easier-to-write extensions.
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!
To learn more and to start writing your VisualStudio.Extensibility extensions, check out this blog post and go to our VSExtensibility GitHub repo!
Productivity
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.
All-in-one Search
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.
You can enable All-In-One Search: Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)”.
Audio Cues for Line addition/deletion
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’ve added two new sounds. When comparing two versions of a file, you’ll hear two new audio cues when the caret arrives on a line that has been added or deleted.
We chose these two audio cues based on customer feedback, so if you’ve got more audio cues that you want to hear, let us know. We’ve created a developer community ticket as a great place to start.
Markdown support
Visual Studio now has an early preview for editing and previewing markdown files. To enable markdown support, go to Tools > Manage Preview Features and check the “Markdown language service” option.
If you’ve enabled the Markdown language service option but don’t see the markdown editor, right click any .md file in the solution explorer and select “Open With…”. In the Open With dialog, select “Visual Studio Markdown Editor” 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.
To enable the preview of the HTML, click the small Preview button at the bottom right corner of the document. We’ve got more improvements that we want to do, but we want to make this available for users today.
If you have feedback that you’d like to share, please head to this developer community ticket and join the conversation.
DataTable Visualizer
We are continuing to improve our debugger visualizer experiment by extending all the advanced features of IEnumerable visualizer such as filtering, sorting, theming, and exporting to the DataTable visualizer.
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.
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.
Exception Stack frames in Call Stack Window
The new Exception stack frames inside the Call Stack window will provide all functionalities of the actual call stack.
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.
Unit Testing Performance
Major performance improvements in test discovery and test run workflows.
Parallel Test discovery
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’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).
Efficient parallelization of test runs
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.
Optimized communication between VS and test runner processes
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).
Clear Test Results and Filters in Test Explorer
The Test Explorer now has a way to clear results for a test or list of tests. Whether you are switching branches or bringing focus to a set of test results that matter or want to declutter old test results, you can start from a clean slate. You can clear test results on a test or a list of tests in the Test Explorer. You can also clear test results from the top-level Test menu if all results need to be cleared.
You now have a clear indication that the Test Explorer is filtered and clear all test filters applied with a single-click. This clears filters on test results state (or) filters on columns in the test list (or) filters in the search box (if they are applied).
.NET
.NET 7.0 RC and MAUI
Visual Studio will now install .NET 7.0 RC1 as the default SDK and runtime. This release includes support for .NET 7.0 RC1 MAUI, Android, iOS and related workloads.
Inline Rename
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.
Option to disable Source Link and Embedded source
There is now an option to disable Source Link and Embedded source. You can disable this in Tools > Options > Text Editor > C# > Advanced and deselect Enable navigation to Source Link and Embedded sources.
C++
Dev Containers for C++ CMake projects
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 Dev Containers for C++ blog post.
vcpkg environment activation
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 vcpkg environment activation in Visual Studio blog post.
IntelliSense improvements
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.
C++ Standardization
We added vectorized implementations of ranges::min_element(), ranges::max_element(), and ranges::minmax_element().
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 compiler options.
- P2302ranges::contains, ranges::contains_subrange
- P2499string_view Range Constructor Should Be explicit
CMake improvements
We have updated the version of CMake shipped with Visual Studio to version 3.24.1. See the CMake release notes for what is available.
We have removed internal prefixes from CTest names in Test Explorer.
Android SDK update
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 (gradle.org )
We have also updated the NDK component to the LTS version 23 and added support for building with NDK 23 and 24.
Share your feedback and help us build a better Visual Studio!
As you use Visual Studio, let us know what you love, what you like, and where you’d like us to improve. You can share feedback with us via Developer Community: report any bugs or issues via report a problem and share your suggestions for new features or improvements to existing ones.
As always, we appreciate the time you’ve spent reporting issues and hope you continue to give us feedback on how we’re doing and what we can improve.
Bonjour,
J'ai des problèmes lors de la génération, sur tout mes programmes :
Gravité Code Description Projet Fichier Ligne État de la suppression
Erreur à Microsoft.CodeAnalysis.VisualBasic.CommandLine.Program.MainCore(String[] args) Zonenet Films
Erreur Exception non gérée : System.BadImageFormatException: Impossible de charger le fichier ou l'assembly 'Microsoft.CodeAnalysis, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. Le module était censé contenir un manifeste de l'assembly. Zonenet Films
Erreur à Microsoft.CodeAnalysis.VisualBasic.CommandLine.Program.Main(String[] args) Zonenet Films
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\Roslyn\Microsoft.VisualBasic.Core.targets(42,5): error :
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\Roslyn\Microsoft.VisualBasic.Core.targets(42,5): error : Exception non gérée : System.BadImageFormatException: Impossible de charger le fichier ou...
The code snippets provided by the new VS17.4 prev3 and later versions really bad experience.
Such as prop, class, interface, struct, cw, if.
For example: prop old : "public $type$ $propname$ {get; set; } $end$".
where "type" and "propname" can be entered in a loop, and the carriage return drop point will be in the "end" position.
the new one is "public $type$ $propname$ {$end$ get; set; }".
the final landing point is strange, and it...
I am seeing these 5 errors after updating my windows machine from 17.4 Preview 1.
Severity Code Description Project File Line Suppression State
Error XA5207 Could not find android.jar for API level 31. This means the Android SDK platform for API level 31 is not installed. Either install it in the Android SDK Manager (Tools > Android > Android SDK Manager...), or change the Xamarin.Android project to target an API version that is installed. (C:\Program Files (x86)\Android\android-sdk\platforms\android-31\android.jar missing.) AzureNotificationHub C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\32.0.465\tools\Xamarin.Android.Common.targets 533
Severity Code Description Project File Line Suppression State
Error NETSDK1127 The targeting pack...
Yes, I had the same issue just now. I rolled back to Preview 1 as well.
Same problem here
v17.4 still has no MAUI workload on Windows. Bring the MAUI back!
In v17.4 Preview 2.0 MAUI workload is available!
“.NET Multi-Platform App UI-Development”
Unit test improvements 👍 but im really excited about the little item, MarkDown support!! Big shout out to the 3rd-party addins who held the torch all these years. Thank you VS team! Much love & respect since VS v5.0
The git integration in Visual Studio is very cool!
I like to use git without having to use it via command line.
It would be really nice if we could debug .NET apps on ARM Embedded Linux devices over SSH with a single motion. Currently we have to manually deploy, manually launch, and manually attach the debugger in Visual Studio 2022.
With Visual Studio Code, debugging in a single motion can be set up to work by editing a few configuration files, so Visual Studio Code provides a better development experience for this use case than Visual...
I am using 2022 Preview to do maui work. Upon upgrading to preview 2 from preview 1, when I build a project with additional projects other than the main one, the build engine throws errors expecting the output dll’s to be in a path they are not.
Even starting a new maui project from scratch, then simply adding an empty project and referencing it, the solution will no longer build.
Anybody else have this issue?
Same Issue for me – I ended up downgrading for now. Basically it was looking for DLLs in referenced project’s – bin\Net6.0\android-x64
The “New Inline Rename UI” works bad on my machine. I can edit type’s name but neither of [“include comments”, “include strings”, “rename symbol’s file”] check boxes could be selected. I cannot click or use ‘Tab’ to choose any checkbox. Maybe i just misused or misunderstood it.
I came here to report the same but someone already did.
Update: I created an issue in the Visual Studio developer community: https://developercommunity.visualstudio.com/t/The-new-Inline-Rename-UI-doesnt-allow-c/10149379
Lots of nice improvments, however given the WinUI advocacy, it is a pity that we keep missing Visual Studio tooling for editing IDL files (IntelliSense and syntax highlighting) and XAML C++ without having to manually merge generated code.
Sometimes I wonder if Microsoft employes on WinDev have a special version of Visual Studio for working with COM, given how they push it upon us for the last 30 years, while the Visual Studio development experience...
Check out the WinRT Tools for C++ for improved tooling around IDL and generated code
Thanks, it looks quite nice, and I will have a go at it.
However, I should note yet again the decision to deprecate C++/CX, replace it with C++/WinRT without any consideration for Microsoft customers, and apparently we need to rely on a Visual Studio extension developed as hobby by a Microsoft employee on his free time, because Visual Studio team cannot bother to provide proper IDL tooling for COM during the last 30 years, despite WinDev...