I am looking for some technical help with MindJet MindManager. I have been playing with add-ins for a couple of days for MindJet MindManager. I have previously written my own macros which I wish to turn into add-ins. So far, I haven't found much information on authoring the add-ins.
I have been able to author as least one add-in from scratch and successfully register it in a hacking sort of way. Because, I wasn't able to register it normally I registered it under the name of an existing add-in by replacing the DLL(containing .net code) with my own. I built the project naming the ProgramId the same as the one I replaced and it loads perfectly. I can debug it from within visual studio.
System.Diagnostics.Debugger.Launch();
This is probably okay for me to install my menu commands and get what I need done.
Initially, I followed as much instruction as I could find on-line about how to manually install a mindjet add-in but content for this process is severely limited.
Next, I opened up MindManager and went to options under the AddIns menu. I could see the friendly name of the add-in taken from the registry where I set the correct values learned from the limited instructions. However, I noticed that there was no location showing in the bottom of the add-in options window where other add-ins did show a path. I have no idea how this path is created or where it is located from.
It seems pretty clear that since the location is missing my code surely won't load.
Of course, there may be something else I am missing that may further complicate things but this looks like a good place to start. I looked in the code of the managed .net assembly from some of the other add-ins(that were pre-installed) but found no sign of any location information. I also looked through the registry looking for similar location data with no luck.
I am running out of things to try and have spent the better part of two days looking for answer and have so far come up empty handed.
MindJet MindManager uses a COM add-in architecture. If you need to register a unmanaged native COM add-in you need to use RegSrv32 to add a record in the registry that will be used to locate the dll when MindManager tries to load its add-ins.
You can also author add-ins by using a managed .NET project and reference the wrapper library provided by MindJet. This library also needs to be registered but RegSrv32 doesn't know what to do with .NET managed libraries. Therefore, you must follow the following steps using RegAsm from the correct build of the .NET Framework.
In assemblyInfo.cs set COM visible to true
[assembly: ComVisible(true)]
Register the type for interop RegAsm.exe a)Use the correct version of .NET. (In my case "C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe") b)This allows the application to find the location of the .dll
[Example command line:] C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "C:\Program Files (x86)\Mindjet\MindManager 10\Automated.Mindjet.dll" /register /codebase