Monday 5th July, 2021
Ever since news broke in April of Microsoft's plans for Visual Studio 2022 we have been waiting to get our hands on a preview build of the new version.
The first public preview was finally released on 17th June, so naturally we have spent the past few days taking a look to see what we need to do - both to analyse codebases using it and to update our existing Visual Lint and ResOrg plugins to integrate within it.
Installed @VisualStudio 2022 Preview 1 to see what's changed on the VSIX extension front. #cplusplus #programming— Anna-Jayne Metcalfe 🌈🍦🏃♀️⚡️🦞🙉 (@annajayne) June 21, 2021
The short answer is that VSPackages are now x64 (we knew this already), but it doesn't look like the proposed new out-of-proc extension architecture has landed yet. pic.twitter.com/MHwSoHUqIb
From what I can see, Visual Studio 2022 Preview 1 seems to use Visual Studio 2019 project files (the platform toolset is still
_MSC_VER is still 1929). I've no doubt that will change in subsequent preview versions.
However, unlike its predecessor Visual Studio 2019, Visual Studio 2022 is a fully 64 bit development environment (although VS2019 and its predecessors can compile and debug 64 bit projects, the IDEs themselves are firmly 32 bit).
As such it follows that plugins for Visual Studio 2022 must also be compiled as 64 bit. Although the plug-in architecture is not changing in VS2022 (see The Future of Visual Studio Extensions), the move to 64 bit is a very significant change in itself.
For our Visual Studio plugin to run within Visual Studio 2022, what we have to do is basically:
Recompile the existing plugins to target the x64 platform, using the new (VS2022 specific) 64 bit Visual Studio COM interfaces and the new (and also VS2022 specific) version of the Visual Studio SDK.
Add Visual Studio 2022 specific VSIX packages to deploy the x64 version of the plugins.
Update the installers to recognise Visual Studio 2022 and install the new x64 version of the plugin.
Try really, really hard not to break support for earlier Visual Studio versions in the process (those cannot load 64 bit plugins, so the existing 32 bit versions still have to be maintained).
The full details of all of the changes involved are somewhat beyond the scope of this blogpost, but suffice it to say we have already started preparing to port the code to Visual Studio 2022 and expect that to keep us busy over the summer.
(well, it's not as if anyone can really go on holiday right now, is it?)
The screenshots below show Visual Studio 2022 Preview 1 with an AppWizard generated C++ VSIX extension project loaded and running. Note that I had to make a couple of minor corrections to the generated project and property files to get it to compile and link.