无法打开显示(需要 X-Server。请检查 DISPLAY 变量)

无法打开显示(需要 X-Server。请检查 DISPLAY 变量)

我正在尝试从命令行运行 WinForm mono 应用程序,而无需完整的桌面环境。它通过 SSH 正确打开(使用 SmarTTY 和 X 转发)。但是,当我尝试直接在 PI 上运行它时,我得到了这个。

它的要点是“无法打开显示(需要 X-Server。检查你的 DISPLAY 变量)”

未处理的异常:System.InvalidOperationException:WinForms_SeeInnerException ---> System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizationContext 的类型初始化程序抛出了异常 ---> System.TypeInitializationException:System.Windows.Forms.XplatUI 的类型初始化程序抛出了异常 ---> System.ArgumentNullException:无法打开显示(需要 X-Server。请检查 DISPLAY 环境变量)参数名称:Display at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in :0 at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in :0 at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in :0 at System.Windows.Forms.XplatUI..cctor () [0x00000] 在 :0 --- 内部异常堆栈跟踪结束 --- 在 System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000] 在 :0 在 System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] 在 :0 在 System.Windows.Forms.Control..ctor () [0x00000] 在 :0 在 (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor () 在 System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] 在 :0 --- 内部异常堆栈跟踪结束 --- 在 System.Windows.Forms.Control..ctor () [0x00000] 在 :0 在 System.Windows.Forms.ScrollableControl..ctor () [0x00000] 在 :0 在 System.Windows.Forms.ContainerControl..ctor () [0x00000] 在 :0 在 System.Windows.Forms.Form..ctor () [0x00000] 在 :0
在 MfgControl.AdvancedHMI.MainForm..ctor () [0x00000] 在 :0 在 (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) 在 System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] 参数) [0x00000] 在 :0 --- 内部异常堆栈跟踪结束 --- 在 MfgControl.AdvancedHMI.My.MyProject+MyForms.Create__Instance__[MainForm] (MfgControl.AdvancedHMI.MainForm Instance) [0x00000] 在 :0 在 MfgControl.AdvancedHMI.My.MyProject+MyForms.get_MainForm () [0x00000] 在 :0 在MfgControl.AdvancedHMI.My.MyApplication.OnCreateMainForm () [0x00000] 在 :0 处 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun () [0x00000] 在 :0 处 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (System.String[] commandLine) [0x00000] 在 :0 处 MfgControl.AdvancedHMI.My.MyApplication.Main (System.String[] Args) [0x00000] 在 :0 [错误] 严重未处理的异常:System.InvalidOperationException:WinForms_SeeInnerException ---> System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizationContext 的类型初始化程序引发了异常 ---> System.TypeInitializationException: System.Windows.Forms.XplatUI ---> System.ArgumentNullException: 无法打开显示(需要 X-Server)。检查 DISPLAY 环境变量)参数名称:Display at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in :0 at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in :0 at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in :0 at System.Windows.Forms.XplatUI..cctor () [0x00000] in :0 --- 内部异常堆栈跟踪结束 --- at System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000] in :0 at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in :0 at System.Windows.Forms.Control..ctor () [0x00000] 在 :0 处 (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor () 在 System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] 在 :0 --- 内部异常堆栈跟踪结束 --- 在 System.Windows.Forms.Control..ctor () [0x00000] 在 :0 处 System.Windows.Forms.ScrollableControl..ctor () [0x00000] 在 :0 处 System.Windows.Forms.ContainerControl..ctor () [0x00000] 在 :0 处 System.Windows.Forms.Form..ctor () [0x00000] 在 :0
在 MfgControl.AdvancedHMI.MainForm..ctor () [0x00000] 在 :0 在 (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) 在 System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] 参数) [0x00000] 在 :0 --- 内部异常堆栈跟踪结束 --- 在 MfgControl.AdvancedHMI.My.MyProject+MyForms.Create__Instance__[MainForm] (MfgControl.AdvancedHMI.MainForm Instance) [0x00000] 在 :0 在 MfgControl.AdvancedHMI.My.MyProject+MyForms.get_MainForm () [0x00000] 在 :0 在MfgControl.AdvancedHMI.My.MyApplication.OnCreateMainForm () [0x00000] 在 :0 处 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun () [0x00000] 在 :0 处 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (System.String[] commandLine) [0x00000] 在 :0 处 MfgControl.AdvancedHMI.My.MyApplication.Main (System.String[] Args) [0x00000] 在 :0 处

答案1

您没有运行 X 服务器。没有 X 服务器,应用程序就无法绑定到显示器。

相关内容