Skip to content

Visual Studio 2022 support

Gregg Miskelly edited this page Nov 10, 2021 · 1 revision

Summary

Because Visual Studio 2022 switched from being 32-bit to 64-bit, there are a number of changes required for Visual Studio extensions in general. Concord made no breaking API changes for Visual Studio 2022, so some purely Concord extensions may require no changes at all.

Most Concord extensions are likely to require changes in one or more of the following areas:

More information about general Visual Studio 2022 migration can be found on docs.microsoft.com.

VSIX Packaging

For extensions that install via .vsix files, when targeting Visual Studio 2022, an extension must declare a ProductArchitecture. Here is an example:

<Installation>
   <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
      <ProductArchitecture>amd64</ProductArchitecture>
   </InstallationTarget>
</Installation>

If your extension only uses only Concord APIs and either all the code dlls in it compiled for 'Any CPU', or it includes both x86 and x64 versions (see here for instructions) then you can build one .vsix for all Visual Studio versions. See the Extensions without running code documentation for more information.

If you need to build multiple .vsix files (one per supported Visual Studio version) then the general advice on docs.microsoft.com applies.

Visual Studio reference assembly changes

For extensions implemented in .NET code, there were significant breaking changes to Visual Studio's non-debugger reference assemblies. These didn't directly impact any debugger assembly -- all debugger assemblies already supported 64-bit processes. But several debugger API assemblies referenced other Visual Studio assemblies. So any extension that crossed over into non-debugger APIs will need to update and recompile for Visual Studio 2022.

Processor architecture changes

Visual Studio (devenv.exe) is now a 64-bit process. If your extension is implemented in native C++, or non-'Any CPU' .NET, then you will now need to be sure to ship an x64 version of any code dll.

Clone this wiki locally