Skip to content

Installing Concord Extensions

Gregg Miskelly edited this page Nov 10, 2021 · 9 revisions

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:

1: Using a .vsixmanifest file

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.

Installing both an x86 and x64 implementation

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.

2: Install to debugger directory

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).

Clone this wiki locally