How to distribute the plugin for both Rhino 6 and Rhino 7?


I have a plugin with two slightly different versions.
One version for Rhino 6.
One version for Rhino 7.

I have to compile different versions because some virtual methods have been changed for Rhino 7.
(for example protected override void ObjectPropertiesPages(List pages) )

That is ok.

But the problem:
1.) User installs the Rhino 6 version for Rhino 6.
2.) After that he/she opens Rhino 7
3.) Rhino 7 automatically searches for Rhino 6 plugins, finds the plugin and installs it.
But it shouldn’t because it doesn’t work 100% with Rhino 7.

How should I set-up my build project or distribute the plugin so that Rhino 6 and Rhino 7 both could use the appropriate version?


Can you help point me to the this function that you are referring to? We should not have broken our SDK for V7 and I want to make sure that is the case.

Also, this post is tagged with compute.rhino3d. Was that by mistake or is there something specific to compute for this post?

Hello Steve,

Sorry, the compute tag was a typing mistake from me.:frowning:

The SDK compatibility is probably not broken, if all the obsolete functions in V7 still point to the V6 similar function it could work. But obsolete means it will be deleted in the future right? So I should prepare for that. - Or?
Other than that I like to use the latest SDK if possible because I can use the latest features supported by it.

For example (I don’t use this one yet but a simple example):
Let’s see the object -> Rhino.Render.RealtimeDisplayMode

We can use various events to handle user clicking on the status line.

in V6 we have:

but in V7 we have:

so I have better options to handle these events.

My experience is, even in case the compatibility is maintained very well, the time comes when I have to build different versions from the plugin for the different host app versions and it is easier to do the separation sooner.


I guess your V6 plugin could refuse to load in V7 and provide a message that a V7 version is available.

Going forward this is exactly something we built our package manager for. You can specify what versions your plugins work for with the package manager.

My plugin displays a warning when it isn’t loaded in the expected environment. The new Package Manager would be the idea way to handle such a situation.