-
Notifications
You must be signed in to change notification settings - Fork 51
Visual Studio 2022 support
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:
- VSIX packaging
- Visual Studio reference assembly changes, for extensions implemented in .NET
- Processor architecture changes for non-'Any CPU' extensions which run in the IDE process
More information about general Visual Studio 2022 migration can be found on docs.microsoft.com.
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.
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.
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.
Concord Documentation:
- Overview
- Visual Studio 2022 support
- Concord Architecture
- Getting troubleshooting logs
- Tips for debugging extensions
- Component Discovery and Configuration
- Component Levels
- Navigating the Concord API
- Obtaining the Concord API headers, libraries, etc
- Concord Threading Model
- Data Container API
- Creating and Closing Objects
- Expression Evaluators (EEs)
- .NET language EEs
- Native language EEs
- Installing Extensions
- Cross Platform and VS Code scenarios:
- Implementing components in native code:
- Worker Process Remoting
Samples: