.NET 7 updated plugin package will not load on Rhino 8 for Mac (LunchBox)

I recently published a release for LunchBox which moves it to .NET 7 - my hope was that a .NET 7 release would allow Rhino 8 Mac users to install LunchBox as we have received support tickets from users who are unable to load previous releases in Rhino 8.

A few notes:

  • LunchBox on the Package Manger has a version release 2024.2.8 - this release is built and tested with .NET 7
  • The plugin is listed as available to Rhino 8 users on Windows and installs without issue.
  • On Rhino 8 Mac, I had a user attempt to load this release in Rhino 8. The user can see LunchBox as available in the Package Manager. After installing and restarting Rhino 8 Mac, LunchBox is still not listed in the Grasshopper menu

Are there additional steps I need to take to get LunchBox to install properly for Rhino 8 Mac users?

Ah ha! Thanks to @dan who pointed out that the LunchBox TargetFramework was x64 - which works for Rhino 8 on Intel Macs and Windows. Changing the plugin to AnyCPU seems to allow LunchBox .NET 7 to also run on Rhino 8 Mac silicon as well.

LunchBox in the package manager v2024.2.9 is the build that seems to run on Rhino 8 Mac.

1 Like

AnyCPU ftw!

I made this more prominent in the Migration Guide

but I also think we can do better by warning at load-time. We’ll get that tuned up:

RH-80171 Compat should check assembly architecture

as soon as we can.

1 Like

It seems that the latest version of Lunchbox does not run if Rhino 8 is set to use .NET Framework using the SetDotNetRuntime.

Having to resort to this older framework is sometimes mandatory to make stuff like Tekla GH Component to work. Probably Rhino.Inside Revit also at least for some versions.

Can we have it all? :smiley:

@archinate1 Any ideas if Lunchbox could run on .NET Framework, .NET 7 and on Mac?

I am using Rhino 8 SR9 for Windows, running in .NET core mode, and using the latest version of Lunchbox downloaded and installed from the package manager. However, it can‘t be used normally and there will be the following error reports.

{0} 0. system.nullreferenceexception: object reference not set to an instance of an object. at grasshopper.kernel.gh_component.gh_structureiterator.setdatatree(int32 index, igh_datatree tree) at lunchbox.excelreadnew.solveinstance(igh_dataaccess da) in c:\users\nate\onedrive\documents\bitbucket\lunchbox\application\nodes\workflow\excelreadnew.cs:line 100

I’m also getting this error: System.NullReferenceException: Object reference not set to an instance of an object.
at Grasshopper.Kernel.GH_Component.GH_StructureIterator.SetDataTree(Int32 index, IGH_DataTree tree)
at LunchBox.ExcelReadNew.SolveInstance(IGH_DataAccess DA) in C:\Users\nate\OneDrive\Documents\bitbucket\lunchbox\application\Nodes\Workflow\ExcelReadNew.cs:line 100