osu!lazer is unable to load the bass.dll file despite it being present in the build output directory.
Platform: Linux kernel 4.14.11-1 64bit
Compiler/Runtime: .NETCore 2.1.103
Note: I am using a patched version of the OpenTK.dll file with these changes: https://github.com/ppy/opentk/pull/16
Relevant Runtime Exception:
[runtime:error] fatal error:
[runtime:important] System.DllNotFoundException: Unable to load DLL 'bass': The specified module or one of its dependencies could not be found.
(Exception from HRESULT: 0x8007007E)
at ManagedBass.Bass.GetDeviceInfo(Int32 Device, DeviceInfo& Info)
at ManagedBass.Bass.get_DeviceCount()
at osu.Framework.Audio.AudioManager.getAllDevices() in /home/jai/Projects/osu/osu-framework/osu.Framework/Audio/AudioManager.cs:line 188
at osu.Framework.Audio.AudioManager.updateAvailableAudioDevices() in /home/jai/Projects/osu/osu-framework/osu.Framework/Audio/AudioManager.cs:line 290
at osu.Framework.Audio.AudioManager.setAudioDevice(String preferredDevice) in /home/jai/Projects/osu/osu-framework/osu.Framework/Audio/AudioManager.cs:line 198
at osu.Framework.Audio.AudioManager.<>c__DisplayClass28_0.<onDeviceChanged>b__0() in /home/jai/Projects/osu/osu-framework/osu.Framework/Audio/AudioManager.cs:line 139
at osu.Framework.Threading.Scheduler.Update() in /home/jai/Projects/osu/osu-framework/osu.Framework/Threading/Scheduler.cs:line 147
at osu.Framework.Threading.GameThread.ProcessFrame() in /home/jai/Projects/osu/osu-framework/osu.Framework/Threading/GameThread.cs:line 124
at osu.Framework.Threading.GameThread.runWork() in /home/jai/Projects/osu/osu-framework/osu.Framework/Threading/GameThread.cs:line 106
at System.Threading.Thread.ThreadMain_ThreadStart()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'bass': The specified module or one of its dependencies could not be found.
Directory Hierarchy:
osu.Desktop/bin/Debug/netcoreapp2.0/
โโโ libbass.dylib
โโโ libbass_fx.dylib
โโโ libbass_fx.x64.so
โโโ libbass_fx.x86.so
โโโ libbass.x64.so
โโโ libbass.x86.so
โโโ ManagedBass.dll.config
โโโ ManagedBass.Fx.dll.config
โโโ OpenTK.dll <-- Patched file
โโโ osu!.deps.json
โโโ osu!.dll
โโโ osu.Framework.dll
โโโ osu.Framework.pdb
โโโ osu.Game.dll
โโโ osu.Game.pdb
โโโ osu.Game.Resources.dll
โโโ osu.Game.Resources.pdb
โโโ osu.Game.Rulesets.Catch.dll
โโโ osu.Game.Rulesets.Catch.pdb
โโโ osu.Game.Rulesets.Mania.dll
โโโ osu.Game.Rulesets.Mania.pdb
โโโ osu.Game.Rulesets.Osu.dll
โโโ osu.Game.Rulesets.Osu.pdb
โโโ osu.Game.Rulesets.Taiko.dll
โโโ osu.Game.Rulesets.Taiko.pdb
โโโ osu!.pdb
โโโ osu!.runtimeconfig.dev.json
โโโ osu!.runtimeconfig.json
โโโ x64
โย ย โโโ avcodec-51.dll
โย ย โโโ avformat-52.dll
โย ย โโโ avutil-49.dll
โย ย โโโ bass.dll <-- existing dll not found by program
โย ย โโโ bass_fx.dll
โย ย โโโ d3dcompiler_47.dll
โย ย โโโ libEGL.dll
โย ย โโโ libGLESv2.dll
โย ย โโโ pthreadGC2.dll
โย ย โโโ SQLite.Interop.dll
โโโ x86
โโโ avcodec-51.dll
โโโ avformat-52.dll
โโโ avutil-49.dll
โโโ bass.dll
โโโ bass_fx.dll
โโโ d3dcompiler_47.dll
โโโ libEGL.dll
โโโ libGLESv2.dll
โโโ pthreadGC2.dll
โโโ SQLite.Interop.dll
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Pretty sure this should be reported against framework, not osu!.
Can linux load .dll? I think is .so
dllmap not work on dotnet core
try rename libbass.x64.so to libbass.so and set LD_LIBRARY_PATH
Did ppy/osu-framework#1617 solve this as well?
Yes, it did.