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:
bei Autodesk.AutoCAD.Runtime.Interop.Check(Int32 returnValue)
bei Autodesk.AutoCAD.Runtime.CommandClass.AddCommand(ICommandLineCallable ca, MethodInfo mi)
bei Autodesk.AutoCAD.ApplicationServices.AutoCADApplicationHolder.Initialize(Assembly assembly)
bei Autodesk.AutoCAD.ApplicationServices.ExtensionLoader.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?
... 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 from pluginclass-A. 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.