Rhino3dm - librhino3dm_native.dll cannot be loaded

Hello,

I am using Rhino3dm nuget package (.net framework) inside my VSTO plugin for Excel. My aim is to generate .3dm file from excel and with data inside excel. I have done all the work on my developer machine. Everything is ok except one thing.

When project is build (using Visual studio), all references are copied to the output folder. Inside the output folder are a folders called Win32 and Win64 with “librhino3dm_native.dll” file.

When I run VSTO plugin on my machine from the Visual studio and run routine using Rhino3dm library it fails as “librhino3dm_native.dll” cannot be found. When this file is copied to the folder where “Rhino3dm.dll” is located it starts to work (again when run withing visual studio).

If I deploy and install VSTO plugin to target computer (not developers machine), problem with “librhino3dm_native.dll” persist. Somehow, when VSTO manifest is build it does not contain reference to “librhino3dm_native.dll”. So “Rhino3dm.dll” cannot see “librhino3dm_native.dll” as reference and fails.

I have tried to load “librhino3dm_native.dll” manually inside the routine but without a success.
I am not sure if it is solution to the issue, but is there a way to make “librhino3dm_native.dll” output to the same folder as other VSTO plugins. Or is there any other way how to overcome this issue?

Thanks Ondřej

Which version of rhino3dm are you using?

8.9.0

Do you get the same issue if you use 8.17.0?

Unfortunately, I do.

Even with version 8.17.0 I get this error.
“Library DLL librhino3dm_native cannot be loaded”.

Bin folder of my project looks like this:

  • bin (folder)
    – all .dll
    – all project files
    – Win32 (folder)
    — librhino3dm_native.dll
    – Win64 (folder)
    — librhino3dm_native.dll

If I move librhino3dm_native.dll from Win64 folder to the bin folder plugin starts to work (only in debug mode not release).

Best

Ondřej

Before I start digging into this, which dotnet flavor are you using?

.NET Framework 4.8

1 Like