Detecting multiple installation issues in Rhino / Grasshopper

We had a user today reporting some issues with their Rhino and Grasshopper connectors, they would get errors at startup like Unable to load SpeckleConnectorRhino.rhp plug-in: initialization failed or An error occurred during ... Method Not found Speckle.Core....

image

These issues are most of the times caused by having multiple misaligned versions of our connectors installed, such things can happen if:

  • you have been debugging / developing on top of Speckle
  • have a very old version of the connector installed
  • an installation/uninstallation failed
  • you have installed both connectors via Manager and connectors manually as System Wide

Soultion

To debug and quickly solve these issues we recommend using grasshopper to see what DLLs are loaded:

  • open Grasshopper and create a new C# node
  • add a second B output port to the node
  • add this line at the top using System.Linq;
  • add these lines in the function and click OK
    var speckleDlls = AppDomain.CurrentDomain.GetAssemblies().Where(o => o.FullName.Contains("Speckle")).ToList();
    A = speckleDlls.Select(o => o.FullName).ToList();
    B = speckleDlls.Select(o => o.Location).ToList();

The output should be something like this; if not, you most likely have additional versions that can be deleted. Note that SpeckleCore, SpeckleConnectorRhino and SpeckleConnectorGrasshopper all share the same 2.x version: