Linux - Does not run with Mono - DllNotFoundException
Closed this issue · 4 comments
I'm guessing something's wrong with Fedora and Mono, because I was able to run MemcardRex in OpenSUSE last I checked.
I followed the instructions on mono-project.com to install the latest stable Mono per MONO.md
[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono --version
Mono JIT compiler version 6.12.0.107 (tarball Wed Dec 9 21:44:58 UTC 2020)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)
When running mono MemcardRex.exe
with the latest release, I get this error log:
[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono MemcardRex.exe
Gtk-Message: 01:07:33.511: Failed to load module "pk-gtk-module"
System.DllNotFoundException: dwmapi.dll assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) MemcardRex.glassSupport.DwmIsCompositionEnabled(bool&)
at MemcardRex.glassSupport.isGlassSupported () [0x00026] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.applyGlass () [0x00030] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.applySettings () [0x00034] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.loadProgramSettings () [0x001f1] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.Form1_Load (System.Object sender, System.EventArgs e) [0x0009c] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x0001f] in <eaa3af9f3e15467aba111734e9f9f2f7>:0
at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00023] in <eaa3af9f3e15467aba111734e9f9f2f7>:0
Running mono in debug mode and redirecting terminal output with MONO_LOG_LEVEL=debug mono MemcardRex.exe > log.txt
I get this text file:
log.txt
After installing the gtk2-engines
package, putting /usr/lib64/gtk-2.0/modules/
and /usr/lib64/gtk-2.0/modules/
into a file at /etc/ld.so.conf.d/
, and running ldconfig
:
[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono MemcardRex.exe
System.DllNotFoundException: dwmapi.dll assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) MemcardRex.glassSupport.DwmIsCompositionEnabled(bool&)
at MemcardRex.glassSupport.isGlassSupported () [0x00026] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.applyGlass () [0x00030] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.applySettings () [0x00034] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.loadProgramSettings () [0x001f1] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at MemcardRex.mainWindow.Form1_Load (System.Object sender, System.EventArgs e) [0x0009c] in <51d023b1534a4ef9bc3b0d1191357c9c>:0
at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x0001f] in <eaa3af9f3e15467aba111734e9f9f2f7>:0
at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00023] in <eaa3af9f3e15467aba111734e9f9f2f7>:0
As I understand it, dwmapi.dll should be provided by Mono. What's going on?
Thanks.
Update - just tried running MemcardRex on my OpenSUSE Tumbleweed machine and it doesn't work on there either
Hm... I think it's only needed for the transparent glass effect on win Vista/7.
Check out this file: https://github.com/ShendoXT/memcardrex/blob/master/MemcardRex/Extras/glassSupport.cs
Maybe it's time to finally get on without it, doesn't look good on modern Windows and is disabled anyway for 10/11...
Check out the c391282, I've removed glass altogether and made a binary release while I'm at it.
RIP Windows Aero.
Both binary release and building from source run on Linux just fine now!