Skip to content
DamianSuess edited this page Jan 1, 2019 · 3 revisions

Mono.Addins

More information can be found on the Mono.Addins' wiki page.

Why isn't my add-in discovered?

Addin XML Case-Sensitivity

Yes, the XML attributes are case-sensitive.

I've learned this the hard way because I forgot Mono.Addins uses the XmlElementclass to obtain its attributes. Reference the Mono.Addins.Description.AddinDescription.Read(..) method used to read your add-in XML manifests.

GOOD Example:

<Addin id="ToolsHub"
       namespace="ToolsHub"
       version="1.0"
       isroot="true"
       compatVersion="1.0">
  ...
</Addin>

BAD Example:

<Addin Id="ToolsHub"
       Namespace="ToolsHub"
       Version="1.0"
       IsRoot="true"
       CompatVersion="1.0">
  ...
</Addin>

Troubleshoot via MAUtil

Using the ``mautil` (Mono.Addin Util) we can see what it's checking for and attempting to load.

Running the following diagnostic command should assist.

mautil -reg <path-to-registry> -p <path-to-application> reg-build -v

Output should resemble something like this:

Checking: C:\dev\ToolsHub\output
Folders checked (30 ms)
Looking for addins
Checking: C:\dev\ToolsHub\output
Scanning file: C:\dev\ToolsHub\output\mautil.exe
Using assembly reflector: Mono.Addins.Database.DefaultAssemblyReflector
Scanning file: C:\dev\ToolsHub\output\Mono.Addins.dll
Scanning file: C:\dev\ToolsHub\output\Mono.Addins.Setup.dll
Scanning file: C:\dev\ToolsHub\output\Newtonsoft.Json.dll
Scanning file: C:\dev\ToolsHub\output\ToolsHub.exe
Scanning file: C:\dev\ToolsHub\output\VeraCryptAddin.dll
Folders scan completed (275 ms)
Regenerating all add-in relations.
Generating add-in extension maps
WARNING: The add-in 'ToolsHub,1.0' is trying to extend '', but there isn't any add-in defining this extension point
Addin relation map generated.
  Addins Updated: 2
  Extension points: 3
  Extensions: 1
  Extension nodes: 3
  Node sets: 0
Add-in relations analyzed (50 ms)