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

In my very simple test I can build and run a file read operation in net481 and net8.0. Can you provide more information on your project?

I think problem is how librhino3dm_native.dll reference is handled when you build VSTO plugin (plugin for MS Office). When project is build, it is build to additional folder (one level deep in the reference folder). Thus plugin somehow ignores that reference.

I can share a project with you. However, it is not a public repo so I need email with which I can share.

Thank you

Ondřej