Rhino6 and Rhino7 on the same system


I need to have Rhino6 and Rhino7 on the same system.
How do I set up separate Grasshopper plugin folders for each version of Rhino?


ref Rhino v5 plugin in conflict with Rhino6 plugin

in order to have two different Grasshooper plugin installations for Rhino6 and Rhino7.
it would be useful if the grasshopper version of Rhino7 use “.no7” files and not “.no6” files as it currently does.
This would allow us to do this:

Grasshopper Libraries Folder
    - OnlyForV6.gha
    - OnlyForV6.no7
    - MyPlugin-v6/
        - MyPlugin.gha
        - MyPlugin.no7
    - MyPlugin-v7/
        - MyPlugin.gha
        - MyPlugin.no6

Question, the program folders of RH6 RH7 do not want to work ?
Is this directory present in RH6
C:\Program Files\Rhino 6\Plug-ins\Grasshopper\Components\*

(RH6 not installed here) so I have tried it short here on RH7 with *.gha, .dll, .ghpy
C:\Program Files\Rhino 7\Plug-ins\Grasshopper\Components\

So plugins are showed in GH, one restriction i see, there must be no folder structure, all files must be loose in “Components” root.

If there are no conflicts, I would entry here …

Hello @eddi

The problem is that %APPDATA%\Roaming\Grasshopper\Libraries is shared between R6 and R7

I would like to have control over what needs to be loaded and what does not.
With the “.no6” files, it is very simple and practical.

It is probably a question of changing the “6” by a “7” in the source code of the Grasshopper delivered with Rhino7.

It works for me.

I realize that, therefore at moment i see this as possibility for separation of GH-Plugins
So try a custom separation in these folders, from %APPDATA%\Roaming\Grasshopper\Libraries, to
C:\Program Files\Rhino 7\Plug-ins\Grasshopper\Components\**
C:\Program Files\Rhino 6\Plug-ins\Grasshopper\Components\**

And Yes, for multiple RH installations actually a good idea.

Indeed, we can use the Rhino system folder as the user directory.
This is not a correct solution, but it is possible if we have administrator rights.
At the moment there is no reaction from McNeel, so will probably do as you say.

Right, this workflow is just an idea from RH user to RH user.

If it works, I am glad for you.

I wouldn’t recommend placing extra files into the folders rhino is installed into, but I know people do this.

It’s a shame Grasshopper isn’t open source, because it’s a simple fix.
As far as I can find with ILSpy, there are two lines to change, in GH_ComponentServer.ExternalFiles and GH_ComponentServerLoadGhaViaTrackingUi

I believe the package manager does solve this but would need to double check.

1 Like

Here is my case. (In order to explain that it is not a whim and that I cannot do otherwise).

I have plugins to control machine tools (CNC). Rhino6 is more stable than Rhino7.
The controller works great with R6 and at the moment I don’t want a user to be able to control the CNC with R7.

Your components could look at the version of Rhino they are running in and provide error messages when running in 7 with information to tell the user that they need Rhino 6

I have the sources of the plugins, so you’re right, I can modify the plugins. this is a second solution.

I also have the possibility to do a Reflection on the function ‘GH_ComponentServer.LoadGHA’ in order to load or not the DLL.
This has the advantage of not showing unusable components. this is a third solution.

All this is not very correct or complex, while the use of “.no7” is very convenient.

Wait, where does the path lead to ‘APPDATA\Roaming\Grasshopper\6\Libraries’

This is a path accessible only on windows. The resolved path is:
C:\Users\<YOUR NAME>\AppData\Roaming\Grasshopper\Libraries

On Mac, I don’t know about it, but you can access it with the Grasshopper menu:
File > Special Folders > Components Folder

Correct but I still have a path to folder 6 here
C:\Users\<YOUR NAME>\AppData\Roaming\Grasshopper\6\Libraries
And that for me looks, that You can sort here ?

You have to ask for confirmation, but I seem to have read that Grasshopper\6\Libraries is the path for Grasshopper version 0.9 and that since version 1.0 the path is now Grasshopper\Libraries.
I’m not sure what I’m saying but I believe it is.

Indeed there should be no shared folder problem with version 0.9

Let’s see what @stevebaer says.

Aah, no effect, the folder is not issolated, what lies here is loaded GH7.