
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
We are developing an AutoCAD 2016 plugin to interface with our calculation software.
We have a basic setup where the plugin loads via a bundle registers it's commands and sets up a network connection with the back end via net pipe, this is a working setup.
As we are developing we would like to load multiple versions (dev, release candidate, production version etc..) of our plugin into AutoCAD so that our testers don't have to uninstall their production software to test and reinstall etc.., this is were the problem starts.
When a version is placed in the ApplicationPlugins folder by itself, the plugin works as expected, the plugin is installed, commands are registered and work as excpected.
When multiple versions are installed, the plugins are both reported as successfully installed, however, only the last plugin (as far as i can tell, in alphabetical order) is loading correctly (works as expected).
The plugin versions differ in the following aspects:
- Bundle names are different for each configuration
- Sarens.Autodesk.2016.plugin.LDev.bundle, Sarens.Autodesk.2016.plugin.LRel.bundle, etc...
- PackageContents.xml:
- ApplicationPackage attribute UpgradeCode is different for each configuration
- ApplicationPackage attribute ProductCode is unique for each build
- ApplicationPackage attribute Name is different for each configuration
- ApplicationPackage/Components/ComponentEntry attribute ModuleName is different for each configuration
- Project differences
- assembly: AssemblyTitle, AssemblyProduct, Guid are different for each configuration
- AssemblyName and dll filename are different for each configuration
- [CommandMethod] attributes are different for each configuration using constants: eg:
[CommandMethod(Prefix + "Sarspace Test", Prefix + "TestLogging", CommandFlags.NoNewStack)] - Namespace for class containing the methods that are registerd as a commandmethod is different for each configuration:
namespace Sarspace.Plugins.Autocad._2016.Launcher.Debug
// Debug changes to Release in a different configuration { public class CadExtension : IExtensionApplication { // abbreviated [CommandMethod(Prefix + "Sarspace Test", Prefix + "TestLogging", CommandFlags.NoNewStack)] public static void HelloWorld() { _logger.Debug("Send information to {0} registered clients", _serviceHostHandler.CountConnectedUsers()); _serviceHostHandler.SendInformationToSubscribers(); } //abbreviated } }
As far as I can tell from an outsider point of view these assemblies are completely different and should work side by side.
When debugging from visual studio, with a single installed plugin, the output shows the loading of the plugin:
'acad.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\ProgramData\Autodesk\ApplicationPlugins\Sarens.Autodesk.2016.plugin.LDev.bundle\Sarspace.Plugins.Autocad.2016.Launcher.Ldev.dll'. Symbols loaded.
However when running with two plugins installed, only the last plugin (in I assume alphabetical order is loaded) full output in attachment:
'acad.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\ProgramData\Autodesk\ApplicationPlugins\Sarens.Autodesk.2016.plugin.LRel.bundle\Sarspace.Plugins.Autocad.2016.Launcher.Lrel.dll'. Symbols loaded.
I would expect the ldev dll to be loaded as well, but it is never mentioned.
I'm running out of ideas:
- What else can i do to make the plugins differ from each other?
- Where can I check how the plugins/plugin commands are registered?
- All other ideas are welcome.
Best Regards,
Evert
Solved! Go to Solution.