如何让 KeePass 在 Mac 上运行?

如何让 KeePass 在 Mac 上运行?

我搜索了一下,到目前为止还没有找到任何有用的信息,所以我决定在这里询问!

我正在运行 Mac OS X 10.11.1,我已下载并安装了 Mono 4.2.1,我正在尝试运行 KeePass 2.31。我尝试按照说明操作这里,但是当我尝试运行时mono Keepass.exe,KeePass 尝试打开,但退出并报告以下错误消息:

System.NotImplementedException: The method or operation is not implemented.
  at System.Windows.Forms.XplatUICarbon.get_SmallIconSize () <0x6e94698 + 0x0001f> in <filename unknown>:0 
  at System.Windows.Forms.XplatUI.get_SmallIconSize () <0x6e94660 + 0x0001d> in <filename unknown>:0 
  at System.Windows.Forms.SystemInformation.get_SmallIconSize () <0x6e94628 + 0x00013> in <filename unknown>:0 
  at KeePass.Forms.MainForm.UpdateUIState (Boolean bSetModified, System.Windows.Forms.Control cOptFocus) <0x6e90f80 + 0x003bb> in <filename unknown>:0 
  at KeePass.Forms.MainForm.UpdateUIState (Boolean bSetModified) <0x6e90f58 + 0x00023> in <filename unknown>:0 
  at KeePass.Forms.MainForm.OnFormLoad (System.Object sender, System.EventArgs e) <0x6e2ee20 + 0x02f4b> in <filename unknown>:0 
  at System.Windows.Forms.Form.OnLoad (System.EventArgs e) <0x6e2e5d8 + 0x00062> in <filename unknown>:0 
  at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) <0x6e2e3a0 + 0x00080> in <filename unknown>:0 

据 Mono 称, “Windows.Forms 是标准 Mono 安装的一部分。”我现在不知道该怎么做,因为我下载了最新版本的 Mono,但没有任何文档/指南能提供帮助。非常感谢您的帮助!谢谢。

更新:

正如评论中所建议的,我已经更新了 XQuartz,现在当我运行时mono KeePass.exe,出现以下错误:

System.NotImplementedException: The method or operation is not implemented.
  at System.Windows.Forms.XplatUICarbon.get_SmallIconSize () <0x702b118 + 0x0001f> in <filename unknown>:0 
  at System.Windows.Forms.XplatUI.get_SmallIconSize () <0x702b0e0 + 0x0001d> in <filename unknown>:0 
  at System.Windows.Forms.SystemInformation.get_SmallIconSize () <0x702b0a8 + 0x00013> in <filename unknown>:0 
  at KeePass.Forms.MainForm.UpdateUIState (Boolean bSetModified, System.Windows.Forms.Control cOptFocus) <0x70073f8 + 0x003bb> in <filename unknown>:0 
  at KeePass.Forms.MainForm.UpdateUIState (Boolean bSetModified) <0x70073d0 + 0x00023> in <filename unknown>:0 
  at KeePass.Forms.MainForm.OnFormLoad (System.Object sender, System.EventArgs e) <0x6fba000 + 0x02f4b> in <filename unknown>:0 
  at System.Windows.Forms.Form.OnLoad (System.EventArgs e) <0x6f186a0 + 0x00062> in <filename unknown>:0 
  at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) <0x6f18468 + 0x00080> in <filename unknown>:0 

Unhandled Exception:
System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (Status status) <0x57e9d58 + 0x0016b> in <filename unknown>:0 
  at System.Drawing.StringFormat.set_Alignment (StringAlignment value) <0x57eaa48 + 0x00033> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.StringFormat:set_Alignment (System.Drawing.StringAlignment)
  at System.Windows.Forms.ColumnHeader.CalcColumnHeader () <0x6ff2280 + 0x00093> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.ColumnHeader:CalcColumnHeader ()
  at System.Windows.Forms.ListView.LayoutHeader () <0x6effa58 + 0x000af> in <filename unknown>:0 
  at System.Windows.Forms.ListView.LayoutDetails () <0x6eff478 + 0x0007b> in <filename unknown>:0 
  at System.Windows.Forms.ListView.CalculateListView (ListViewAlignment align) <0x6efd1c8 + 0x00057> in <filename unknown>:0 
  at System.Windows.Forms.ListView.Redraw (Boolean recalculate) <0x6efd150 + 0x0004f> in <filename unknown>:0 
  at System.Windows.Forms.ListView.ListView_SizeChanged (System.Object sender, System.EventArgs e) <0x6efd120 + 0x0001b> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) <0x6830a28 + 0x0006f> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) <0x6830590 + 0x001e8> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) <0x683bfc8 + 0x000e3> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683bb38 + 0x0034b> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683baf8 + 0x00036> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x68361c0 + 0x001ae> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) <0x68314b0 + 0x00467> in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) <0x6831230 + 0x000cb> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6830fe8 + 0x00128> in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6847de0 + 0x0004b> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) <0x6830bb8 + 0x0022b> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout () <0x6840ff8 + 0x00023> in <filename unknown>:0 
  at System.Windows.Forms.Control.ResumeLayout (Boolean performLayout) <0x68411d0 + 0x002a7> in <filename unknown>:0 
  at System.Windows.Forms.Control.ResumeLayout () <0x68411b0 + 0x0001b> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:ResumeLayout ()
  at System.Windows.Forms.SplitContainer.UpdateLayout () <0x69df630 + 0x00ba3> in <filename unknown>:0 
  at System.Windows.Forms.SplitContainer.OnLayout (System.Windows.Forms.LayoutEventArgs e) <0x69df5e8 + 0x00013> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) <0x6830bb8 + 0x0022b> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResizeInternal (System.EventArgs e) <0x6830b28 + 0x0001f> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResize (System.EventArgs e) <0x6830b08 + 0x0001a> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) <0x6830a28 + 0x00025> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) <0x6830590 + 0x001e8> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) <0x683bfc8 + 0x000e3> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683bb38 + 0x0034b> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683baf8 + 0x00036> in <filename unknown>:0 
  at System.Windows.Forms.SplitContainer.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x6a10c88 + 0x00033> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x68361c0 + 0x001ae> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) <0x68314b0 + 0x00467> in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) <0x6831230 + 0x000cb> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6830fe8 + 0x00128> in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6847de0 + 0x0004b> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) <0x6830bb8 + 0x0022b> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout () <0x6840ff8 + 0x00023> in <filename unknown>:0 
  at System.Windows.Forms.Control.ResumeLayout (Boolean performLayout) <0x68411d0 + 0x002a7> in <filename unknown>:0 
  at System.Windows.Forms.Control.ResumeLayout () <0x68411b0 + 0x0001b> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:ResumeLayout ()
  at System.Windows.Forms.SplitContainer.UpdateLayout () <0x69df630 + 0x00b93> in <filename unknown>:0 
  at System.Windows.Forms.SplitContainer.OnLayout (System.Windows.Forms.LayoutEventArgs e) <0x69df5e8 + 0x00013> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) <0x6830bb8 + 0x0022b> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResizeInternal (System.EventArgs e) <0x6830b28 + 0x0001f> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResize (System.EventArgs e) <0x6830b08 + 0x0001a> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) <0x6830a28 + 0x00025> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) <0x6830590 + 0x001e8> in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) <0x683bfc8 + 0x000e3> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683bb38 + 0x0034b> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x683baf8 + 0x00036> in <filename unknown>:0 
  at System.Windows.Forms.SplitContainer.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x6a10c88 + 0x00033> in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) <0x68361c0 + 0x000da> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) <0x68314b0 + 0x00467> in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) <0x6831230 + 0x000cb> in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6830fe8 + 0x00128> in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6847de0 + 0x0004b> in <filename unknown>:0 
  at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) <0x69e02c8 + 0x00017> in <filename unknown>:0 
  at System.Windows.Forms.Form.OnLayout (System.Windows.Forms.LayoutEventArgs levent) <0x6f06de0 + 0x00027> in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) <0x6830bb8 + 0x0022b> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:PerformLayout (System.Windows.Forms.Control,string)
  at System.Windows.Forms.Control+ControlCollection.Remove (System.Windows.Forms.Control value) <0x6ff35e8 + 0x00067> in <filename unknown>:0 
  at System.Windows.Forms.Form+ControlCollection.Remove (System.Windows.Forms.Control value) <0x7069830 + 0x00113> in <filename unknown>:0 
  at System.Windows.Forms.Form.RemoveOwnedForm (System.Windows.Forms.Form ownedForm) <0x7069808 + 0x00020> in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Form:RemoveOwnedForm (System.Windows.Forms.Form)
  at System.Windows.Forms.Form.set_Owner (System.Windows.Forms.Form value) <0x702ec50 + 0x00037> in <filename unknown>:0 
  at System.Windows.Forms.Form.Dispose (Boolean disposing) <0x702e968 + 0x0012f> in <filename unknown>:0 
  at System.ComponentModel.Component.Finalize () <0x6a0d5d8 + 0x00018> in <filename unknown>:0 

答案1

我经常在 MacOS 上使用 mono 下的 KeePass。我刚刚从 KeePass 2.30 升级到 2.31,也发现了同样的问题。KeePass 2.30 对我来说运行正常。我认为我们都需要把这个问题提交到 KeePass 论坛上。

编辑:

这个问题已经在论坛中被提出,我第一次查看时没有发现它。我把这归咎于 SourceForge 上的糟糕搜索 :)

建议使用 2.30,直到 2.32 可用。

以下是链接:

http://sourceforge.net/p/keepass/discussion/329221/thread/7c096cfc/?limit=25#5cc3/60e2

相关内容