godot: Mono: Exported projects don't include runtime assemblies from nuget packages for its platform

Godot version: 3.0.6, 3.1 Alpha Snapshot and Master

OS/device including version: Windows 10

Issue description: When you use a nuget package it’ll properly add the initial nuget package dll’s, but on export it doesn’t include the runtime dll’s (if they exist) in the assemblies folder.

Steps to reproduce:

  1. Create a new project that creates runtime libraries like sqlite
  2. Export project
  3. Notice that your app is asking about a missing dl

Minimal reproduction project:

Here’s my current project, it includes the packages folder to save time. You’ll notice inside the packages/sqlite core folder there’s a runtimes folder with dll’s for each individual platform under linux-x64 osx-x64 win-x64 win-x32. Inside includes the corresponding dll’s

https://g4mr.itch.io/brickhouse (30mb)

Notes

  • A workaround would be to manually check each package library and move the runtimes for each platform over to it’s appropriate folder.

  • Nuget packages with platform specific runtime libs have no problem running inside the editor.

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Comments: 15 (8 by maintainers)

Most upvoted comments

Yes, this will be supported in 4.0.

Fixing this will require some work. In the meantime, I think the only workaround is to copy the native libraries manually after exporting the game to a location where the game can find it (next to the exe for example, or in data_*/Mono/lib/).

Just found that this issue exists, as I was running into the same problem: https://github.com/godotengine/godot/issues/61313

@neikeq I hope this is on the roadmap for 4.0? It’s a pretty big showstopper problem for anyone that tries to use Godot with C# and external packages. Unfortunately, your proposed workaround of copying the native library files manually does not seem to work for macOS exports.