Rhino 8.36 is loading wrong plugin version

Hello.
Ever since (8.36.26293.11001, 2026-10-20) update I’m having issues with my plugins.
Some plugins stopped loading with message saying it was created for Rhino9.
Others stopped creating log files next to .dll, later I discovered the log files were actually created but in a wrong directory.

My compiler creates 2 separate versions of plugins in .net7 for Rhino8 and .net10 for Rhino9
The .dll created under their own folders:

bin\Release\net7.0-windows\my_plugin.dll
bin\Release\net10.0-windows\my_plugin.dll

The plugin manager shows the correct path:


but in reality, it’s using dll from net10.0-windows folder:

Python script
import Rhino
import System

plugin = Rhino.PlugIns.PlugIn.Find(
    System.Guid("2607512e-a1fc-4cf9-9329-a293431437a0"))
print(plugin.GetType().Assembly.Location)
Command: -_EditPythonScript
>>> ( Debugging=On ): Debugging=Off
>>> ( Debugging=Off ): (
C:\Users\Cutter\AppData\Local\Temp\TempScript.py
)
D:\github\rhino\vTools\bin\Release\net10.0-windows\vTools.dll

When I delete net10.0-windows folder it loads the plugin from net7.0-windows just fine.

What’s going on here?

the two builds have the same assembly name and version, so once .net loads one copy it reuses that copy for both. plugin manager shows the registered path, but what’s running is whichever dll got loaded first. give the net10 build a different assembly name, or keep the two builds in separate trees, and rhino 8 will stick to the net7 one.

Hi Vano -

Rhino 8 switched over to .NET 10 in 8.36 as the default.
You can use the SetDotNetRuntime to change that back to .NET 8 or 7.
-wim

That’s what threw me off, is that the files are in different directories! I could understand if there were next to each other…

@wim
thanks, will try that.
Meanwhile my work around was to change how releases are created, now they are in separate directories for rhino8 with both net7 and net10 and rhino9 with net10