I use KeePass_2.22 in openSUSE 12.3 KDE x86_64, mono environment as follow:
:::bash
mono-core-3.0.4-1.4.1.x86_64
mono-data-oracle-3.0.4-1.4.1.x86_64
mono-devel-3.0.4-1.4.1.x86_64
mono-nunit-3.0.4-1.4.1.x86_64
mono-wcf-3.0.4-1.4.1.x86_64
libmonosgen-2_0-devel-3.0.4-1.4.1.x86_64
monodoc-core-3.0.4-1.4.1.x86_64
mono-reactive-3.0.4-1.4.1.x86_64
mono-data-postgresql-3.0.4-1.4.1.x86_64
mono-extras-3.0.4-1.4.1.x86_64
mono-complete-3.0.4-1.4.1.x86_64
libmono-2_0-1-3.0.4-1.4.1.x86_64
mono-winfxcore-3.0.4-1.4.1.x86_64
mono-mvc-3.0.4-1.4.1.x86_64
mono-locale-extras-3.0.4-1.4.1.x86_64
mono-web-3.0.4-1.4.1.x86_64
mono-data-3.0.4-1.4.1.x86_64
mono-winforms-3.0.4-1.4.1.x86_64
libmono-2_0-devel-3.0.4-1.4.1.x86_64
mono-data-sqlite-3.0.4-1.4.1.x86_64
libmonosgen-2_0-0-3.0.4-1.4.1.x86_64
mono-entityframework-3.0.4-1.4.1.x86_64
When I log on to the system as the root user, run the `mono /usr/lib/keepass/KeePass.exe' is OK. If user is non root, it's failure, report error message as follow:
:::bash
Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Argument cannot be null.
Parameter name: key
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.GetObject (System.String name) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.KeyboardLayouts.LoadLayouts () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.KeyboardLayouts.get_Layouts () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard.DetectLayout (System.Windows.Forms.KeyboardLayouts layouts) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard.EnsureLayoutInitialized () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard..ctor (IntPtr display, IntPtr clientWindow) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown="">:0
--- End of inner exception stack trace ---
at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown="">:0
at KeePass.Program.Main (System.String[] args) [0x00000] in <filename unknown="">:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Argument cannot be null.
Parameter name: key
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown="">:0
at System.Resources.ResourceManager.GetObject (System.String name) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.KeyboardLayouts.LoadLayouts () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.KeyboardLayouts.get_Layouts () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard.DetectLayout (System.Windows.Forms.KeyboardLayouts layouts) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard.EnsureLayoutInitialized () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.X11Keyboard..ctor (IntPtr display, IntPtr clientWindow) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown="">:0
at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown="">:0
--- End of inner exception stack trace ---
at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown="">:0
at KeePass.Program.Main (System.String[] args) [0x00000] in <filename unknown="">:0</filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename>
The debug message in the attachment file.
For more information in openSUSE BBS
This is a Mono bug, not a KeePass bug (this can be seen from the stack trace; KeePass just calls EnableVisualStyles and the exception happens deep within Mono; there's nothing I can do in KeePass to prevent this; the issue must be fixed in Mono). Therefore, it would be great if you could report it to the Mono developers.
Thanks and best regards,
Dominik