Plugin load error on DotNetFramework Rhino 8

Hi Guys,

I have in the last couple of weeks added dockable panel support to DKUI.

DKUI itself is written in Python 3 components in Grasshopper and compiled into a YAK using the Rhino Script Editor. This compile process does not support registering a panel in Rhino - which is required to have a dockable panel.

To get around this limit I have written a barebones C# plugin in VS 2022, which is compiled in a dll/rhp. This plugin registers itself and creates all the structure needed to register a panel. I then load this dll into a Python component in GH, create a ETO.Webview and using a “load control” method in my rhp/dll to load a the DKUI control window into the dockable panel.

Its working OK at this stage, I have some Rhino panel life-time issues to work out, but the concept is working:

However I have had feedback from users who have set there runtime to DotNetFramework of error messages on loading Rhino:

I have been able to replicate the issue and describe a fix:

  • Set DotNetRunTime to NETFramework
  • Restart Rhino
  • Update DKUI to the latest version 26.2.23.4
  • Restart Rhino

The error comes up on first running of Rhino.

If I then:

  • Set DotNetRunTime to NETCore
  • Restart Rhino

The error is cleared

I can then:

  • Set DotNetRunTime to NETFramework
  • Restart Rhino

And the error no longer comes up.

This seems to be a bit of unnecessary jumping around - is there a better way I can handle this?

I do have one more note - it appears my C# plugin is only using ONE NetCore feature, and that is ONLY to deal with the icon in the corner of the panel.

Cheers

DK

Bumping this back to the top in case it was missed.

Still looking for a fix for this.

Cheers

DK

Are you only shipping 1 dll that is compiled with dotnet core? If so it’ll fail in net framework as your users are seeing. I think you’ll need to ship a net core and net framework dll and load them based on the runtime.

This is somewhat speculation as I’ve never tried to do what you’re doing.