-
Notifications
You must be signed in to change notification settings - Fork 51
Installing Concord Extensions
Concord extensions can install like any other Visual Studio extension. The easiest way to do this is through a .vsix file, which is a zip format. It is also possible to create a Windows Installer for extensions that need a more complex setup.
The only special considerations for a Concord extension, is that a Concord extension must register its .vsdconfig file with Concord. There are two ways to do this:
Visual Studio extensions normally have a manifest file that describes the extension to the Visual Studio extension manager. This is a .vsixmanifest file. Within a .vsixmanifest, an extension can declare 'assets' of various types. One of the asset types is 'DebuggerEngineExtension'. Concord will enumerate all 'DebuggerEngineExtension' assets installed in Visual Studio and use them. If you are installing through a .vsix, edit your source.extension.vsixmanifest file to add this:
<Assets>
<Asset Type="DebuggerEngineExtension" Path="ExampleComponent.vsdconfig"/>
</Assets>
This method is how the samples install themselves (see here) and it is the recommended approach.
For extensions implemented in C++, this approach also provides the benefit that if you need both an x86 and an x64 component dll, you can do this by having your installer/.vsix drop the x86 implementation to '<Directory-of-.vsixmanifest>\x86' and drop the x64 implementation to '<Directory-of-.vsixmanifest>\x64'.
The VS 2019 version (VS16 branch) of the CppCustomVisualizer does this. In CppCustomVisualizer/vsix/VSIXSourceItems.props there is a list of files to include in the .vsix through VSIXSourceItem
items. In CppCustomVisualizer/vsix/Build-x64.targets there are custom MSBuild targets to build the solution for x64 as part of the build of the vsix project. NOTE: make sure that your vsix project is configured to NOT build for x64 through Solution Build Manager or else this will cause an infinite set of builds. Both files are imported into the vsix project file.
In addition to method 1, the debugger still supports loading any extensions that it finds in Common7\Packages\Debugger. So another option is to install to that directory. This method will only work for extensions that load in devenv (NOT in msvsmon for either Worker Process remoting or for monitor side components).
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: