RhinoCommon Nuget Target

Is it correct that the latest RhinoCommon Nuget package seems to target .NET 8.0 even though Rhino 9 Beta has .NET 10 as the official platform? Sorry if I misunderstood the recent developer news email.

Hi Larry,

You’re reading the package correctly — the current RhinoCommon NuGet for Rhino 9 targets .NET 8.0 (plus net48), not .NET 10.

The key is that a plugin’s target framework** and the runtime it loads into are two different things:

  • Rhino 9’s runtime is .NET 10 — that’s the process your plugin runs inside.
  • RhinoCommon targets .NET 8.0 — that’s what you compile against.

A net8.0 assembly loads and runs fine in the .NET 10 runtime thanks to .NET’s roll-forward compatibility. By targeting the .NET 8 LTS release, a plugin built once will keep loading across .NET runtime updates rather than being pinned to one exact version. So for Rhino 9 plugins, net8.0 is the recommended target — you don’t need (and shouldn’t switch) to net10.0.

Hope this helps.

– Dale

Thanks for that clarification @dale . That is great if we can leave our plug-in targeting .NET 8.0. Currently we are multi-targeting net48 and net80 so that we can use the same build and installation for Rhino 7 and 8. I was thinking that I would need to add net10 to also support Rhino 9 based on some of the statements in this latest Migration Guide:

It sounded like net80 wasn’t guaranteed to be supported in future releases of Rhino 9. Is that not the case so that we can target net10 whenever we are ready?

Larry

Yes, absolutely.

The RhinoCommon assembly itself is built as net8.0. A net10.0 project references a net8.0 library with no issue — NuGet resolves the lib/net8.0 assets and it loads fine in Rhino 9’s .NET 10 runtime.

– Dale

Thanks @dale !

Hey sorry but I’m really confused the official article says:
“All plugin developers should migrate to .NET 10”
and
“For Rhino 9, you should target .NET 10.0.”
it lists net10 as the Rhino 9 target.

But you’re saying rhinocommon targets net8, and that net8 should be the plugin target and that devs should not switch to to net10?

maybe I’m just misunderstanding, but is the article giving conflicting info or what is the recommended target for plugin devs? :smiley:
thanks!

Rhino - Moving to .NET Core (does say july 7, and you replied later, so i assume that your correction with 8 is the right one, and the article just hadn’t been updated? :D)

and R9 Beta Developer Updated also says .net 10

Hi @Viterkim,

Do not confused what .NET version you should use to write your plug-in for Rhino 9 with what core Rhino does to load your plug-in.

– Dale

So, don’t confuse the .net version used to build my rhino9 plugin, with the .net runtime rhino itself uses to load it?

So… what should an extension target be? .net 10?

hey man you could be more nice, some people get confused at stuff you don’t :slight_smile:

you could just say “yes it’s 10”. I obviously prefaced it all and tried to explain my confusion, even referring to the article itself.

Just linking it is kind of passive aggresive, I’m not trying to be mean I’m trying to understand.

EDIT: but you were in fact giving incorrect/conflicting information then

So for Rhino 9 plugins, net8.0 is the recommended target — you don’t need (and shouldn’t switch) to net10.0.

which is posted after Rhino - Moving to .NET Core
which says

All plugin developers should migrate to .NET 10. 

and

For Rhino 9, you should target .NET 10.0. Since .NET Framework is deprecated in Rhino 9...

so ok 10 is the target