Impossibile aprire il display (è richiesto X-Server. Controlla la variabile DISPLAY)


0

Sto cercando di eseguire un'app mono WinForm dalla riga di comando senza un ambiente desktop completo. Si apre correttamente su SSH (usando SmarTTY e X forwarding). Tuttavia, quando provo a eseguirlo direttamente sul PI, ottengo questo.

Il suo significato è "Impossibile aprire il display (è necessario X-Server. Controlla la variabile DISPLAY)"

Eccezione non gestita: System.InvalidOperationException:   WinForms_SeeInnerException --- & gt; System.TypeInitializationException: An   eccezione è stata generata dal tipo di inizializzatore per   System.Windows.Forms.WindowsFormsSynchronizationContext --- & gt;   System.TypeInitializationException: un'eccezione è stata lanciata da   digitare initializer per System.Windows.Forms.XplatUI --- & gt;   System.ArgumentNullException: Impossibile aprire la visualizzazione (X-Server   necessario. Controlla la variabile ambientale DISPLAY) Nome parametro:   Mostra su System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr   display_handle) [0x00000] in: 0 a   System.Windows.Forms.XplatUIX11..ctor () [0x00000] in: 0 su System.Windows.Forms.XplatUIX11.GetInstance ()   [0x00000] in: 0 a   System.Windows.Forms.XplatUI..cctor () [0x00000] in: 0 --- Fine della traccia dello stack di eccezioni interne --- a   System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000]   in: 0 a   System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined ()   [0x00000] in: 0 a   System.Windows.Forms.Control..ctor () [0x00000] in: 0 in (wrapper remoting-invoke-con-check)   System.Windows.Forms.Control: .ctor () presso   System.Windows.Forms.WindowsFormsSynchronizationContext..cctor ()   [0x00000] in: 0 --- Fine dello stack di eccezioni interne   trace --- a System.Windows.Forms.Control..ctor () [0x00000] in   : 0 a   System.Windows.Forms.ScrollableControl..ctor () [0x00000] in: 0 su System.Windows.Forms.ContainerControl..ctor ()   [0x00000] in: 0 a   System.Windows.Forms.Form..ctor () [0x00000] in: 0
at MfgControl.AdvancedHMI.MainForm..ctor () [0x00000] in: 0 in (wrapper managed-to-native)   System.Reflection.MonoCMethod: InternalInvoke   (System.Reflection.MonoCMethod, object, object [], System.Exception & amp;) su   System.Reflection.MonoCMethod.InternalInvoke (System.Object obj,   Parametri System.Object []) [0x00000] in: 0 ---   Fine della traccia dello stack di eccezioni interne --- at   MfgControl.AdvancedHMI.My.MyProject + MyForms.Create__Instance __ [MainForm]   (Istanza MfgControl.AdvancedHMI.MainForm) [0x00000] in: 0 in   MfgControl.AdvancedHMI.My.MyProject + MyForms.get_MainForm () [0x00000]   in: 0 a   MfgControl.AdvancedHMI.My.MyApplication.OnCreateMainForm () [0x00000]   in: 0 a   Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun   () [0x00000] in: 0 a   Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run   (System.String [] commandLine) [0x00000] in: 0 a   MfgControl.AdvancedHMI.My.MyApplication.Main (System.String [] Args)   [0x00000] in: 0 [ERROR] FATAL UNHANDLED EXCEPTION:   System.InvalidOperationException: WinForms_SeeInnerException --- & gt;   System.TypeInitializationException: un'eccezione è stata lanciata da   digitare inizializzatore per   System.Windows.Forms.WindowsFormsSynchronizationContext --- & gt;   System.TypeInitializationException: un'eccezione è stata lanciata da   digitare initializer per System.Windows.Forms.XplatUI --- & gt;   System.ArgumentNullException: Impossibile aprire la visualizzazione (X-Server   necessario. Controlla la variabile ambientale DISPLAY) Nome parametro:   Mostra su System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr   display_handle) [0x00000] in: 0 a   System.Windows.Forms.XplatUIX11..ctor () [0x00000] in: 0 su System.Windows.Forms.XplatUIX11.GetInstance ()   [0x00000] in: 0 a   System.Windows.Forms.XplatUI..cctor () [0x00000] in: 0 --- Fine della traccia dello stack di eccezioni interne --- a   System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000]   in: 0 a   System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined ()   [0x00000] in: 0 a   System.Windows.Forms.Control..ctor () [0x00000] in: 0 in (wrapper remoting-invoke-con-check)   System.Windows.Forms.Control: .ctor () presso   System.Windows.Forms.WindowsFormsSynchronizationContext..cctor ()   [0x00000] in: 0 --- Fine dello stack di eccezioni interne   trace --- a System.Windows.Forms.Control..ctor () [0x00000] in   : 0 a   System.Windows.Forms.ScrollableControl..ctor () [0x00000] in: 0 su System.Windows.Forms.ContainerControl..ctor ()   [0x00000] in: 0 a   System.Windows.Forms.Form..ctor () [0x00000] in: 0
at MfgControl.AdvancedHMI.MainForm..ctor () [0x00000] in: 0 in (wrapper managed-to-native)   System.Reflection.MonoCMethod: InternalInvoke   (System.Reflection.MonoCMethod, object, object [], System.Exception & amp;) su   System.Reflection.MonoCMethod.InternalInvoke (System.Object obj,   Parametri System.Object []) [0x00000] in: 0 ---   Fine della traccia dello stack di eccezioni interne --- at   MfgControl.AdvancedHMI.My.MyProject + MyForms.Create__Instance __ [MainForm]   (Istanza MfgControl.AdvancedHMI.MainForm) [0x00000] in: 0 in   MfgControl.AdvancedHMI.My.MyProject + MyForms.get_MainForm () [0x00000]   in: 0 a   MfgControl.AdvancedHMI.My.MyApplication.OnCreateMainForm () [0x00000]   in: 0 a   Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun   () [0x00000] in: 0 a   Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run   (System.String [] commandLine) [0x00000] in: 0 a   MfgControl.AdvancedHMI.My.MyApplication.Main (System.String [] Args)   [0x00000] in: 0


La tua immagine di testo non è molto utile . Non può essere copiato in un editor e non si indice molto bene, il che significa che altri utenti con lo stesso problema hanno meno probabilità di trovare la risposta qui. per favore modificare il tuo post per incorporare direttamente il testo pertinente (preferibilmente usando copia + incolla per evitare errori di trascrizione).
Toby Speight

Risposte:


1

Non hai un server X in esecuzione. Senza un server X non ci sono display per l'applicazione a cui collegarsi.


C'è un modo per avviare X server ed eseguire la mia app con lo stesso comando?
TheColonel26

Hai installato un Xserver? Le installazioni minime della CLI (i, e nessun ambiente desktop) raramente vengono con esse. Startx produce risultati?
user2183032

Lo so. Tuttavia non ho ancora capito come avviare la mia app mono in x-server con 1 linea. Ho creato uno script di shell per farlo. "#! / bin / bash export DISPLAY =: 0 X -nocursore -s 0 -dpms & amp; mono /app/AdvancedHMI.exe&"
TheColonel26

startx & amp; & amp; applicazione
user2183032

Ci ho provato. Avvia solo x-server e ignora la seconda parte della linea.
TheColonel26
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.