I have a finished plugin (dll-A), which works well.
Now I want to write an extension for it (dll B).
The function in the expansion are so special that I do not in
want to integrate the finished plugin (dll A).
I bind the dll to the plugin (dll-A) into the new dll of the plugin (dll B) and inherit the plugin class (class A) in the plugin class (class B).
Is loaded by the netload (dll B).
He throws the following error:
Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey bei Autodesk.AutoCAD.Runtime.Interop.Check(Int32 returnValue) bei Autodesk.AutoCAD.Runtime.CommandClass.AddCommand(I
CommandLineCallable ca, MethodInfo mi) bei Autodesk.AutoCAD.ApplicationServices.AutoCADApplic ationHolder.Initialize(Assembly assembly) bei Autodesk.AutoCAD.ApplicationServices.ExtensionLoad er.ProcessAssembly(Assembly assembly)
Exist in both dll's no duplicate commands!
On debugging looks as if autocad load first dll-A and than load dll-B.
Can it be that the (dll-A) is loaded twice?
If so how can I overcome this?
We need a build able sample to look at really. Do youuse the CommandClass attribute in both?
excuse me, we spend a few days on holiday.
... yes both dll's (A, B) use the CommandClass attribute.
I have found an Solution for me (parallel post on "TheSwamp")
... AutoCAD loaded all linked Dll's from the dll-B on netload-command.
But the dll-A is also a plugin-dll (has the pluginclass-A), hence loaded autocad the implement commands
All command of the pluginclass-A from dll-a is inherit in pluginclass-B in dll-B.
Therefor crasht the Commandloader on load plginclass-B.
I have solved the problem by extract all functionality that use the pluginclass-B from pluginclass-A into
new class without Commands. That works fine.
Have your another solution? It's interest me for future projects.
Access a broad range of knowledge to help get the most out of your products and services.