Skip to content

Placement of the native binaries using Godot #19

Description

@klootas

Wow, so great to have a NuGet package for this 👏
However, I have a problem using Godot (4.7.1) that I though I might raise.

If my Godot export template has "dotnet/embed_build_outputs" unchecked, I get this output

Game.exe
data_Game_windows_x86_64/Game.dll
data_Game_windows_x86_64/steam_api64.dll

Running Game.exe result in this exception:
Unable to load DLL 'steam_api' or one of its dependencies: The specified module could not be found.
ERROR: [Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.

Now... Everything works (provided I add a steam_appid.txt) if I just move steam_api64.dll up one folder, so it's next to the executable:

Game.exe
steam_api64.dll
data_Game_windows_x86_64/Game.dll

I prefer to set the Godot export template to have "dotnet/embed_build_outputs" checked (so I get just one file and no folders), but running an executable built like that predictably results in the same runtime exception as above.

Do you see hava any thoughts on this? I could programmatically move the references in a post build script, but I would have to to come up with a cross-platform way of knowing where they should be moved from. And dotnet/embed_build_outputs makes it look so neat with just one executable :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions