Forum: PC-Programmierung C#: exe unter Ubuntu ausführen


von *GAST* (Gast)


Lesenswert?

Ich habe mir in SharpDevelop (Wondows) ein kleines Progrämmchen 
geschrieben, welches ich unter Ubuntu ausführen möchte. Da meckert das 
System. (Fehler beim Laden des Archives)

Dann habe ich mir den Quellcode kopiert und mit MonoDevelop (Ubuntu) 
kompiliert. Programm wird auch ausgeführt (aus der IDE heraus) dann 
schlie0e ich alles und sehe mir die erstellten Dateien an: Auch 
MonoDevelop hat eine *.exe erstellt, die sich aber mit dem gleichen 
Fehler auch nicht öffnen lässt... Weiß jemand Abhilfe? Danke ;-)

von hp-freund (Gast)


Lesenswert?

setz mal ein mono davor:

mono test.exe

von *GAST* (Gast)


Lesenswert?

wie was mono davor setzen? Ist mono nicht das .NET von Linux?

von hp-freund (Gast)


Lesenswert?

Genau. Der Aufruf erfolgt mit:

#> mono deine.exe

von hp-freund (Gast)


Lesenswert?

Wenn Deine exe klein und nicht geheim ist, häng sie einfach mal an.
Ich teste dann mal ob sie hier in meinem LFS (Eigenbaulinux) läuft.

von *GAST* (Gast)


Angehängte Dateien:

Lesenswert?

hier ist die Datei. Wie öffnet man denn normalerweise *.exe-Dateien 
unter Linux, wenn die IDE unter Linux selbst eine erstellt hat, sollte 
sie doch auch zu öffnen sein...

von hp-freund (Gast)


Lesenswert?

Normale exe werden mit wine ausgeführt.
.NET exe mit mono.

Deine Datei zeigt mir:

Taste zum starten . . .

Dann kommt die Fehlermeldung : /home/tux/test.txt usw.

von bluppdidupp (Gast)


Lesenswert?


von SF (Gast)


Lesenswert?

Die Fehlermeldung
1
Taste zum starten . . . 
2
3
Durchgang 0
4
5
Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path "/home/tux/test.txt".

kommt weil anscheinend fest im Programm der Name der Textdatei 
"/home/tux/test.txt" einkodiert ist. Nachdem ich diese Datei erzeugt 
hatte und mit passenden Zugriffsrechten versehen hatte, konnte ich das 
Programm problemlos starten:
1
nnnn@nnnn:~/Desktop> mono speedubuntu1.exe
2
Taste zum starten . . . 
3
4
Durchgang 0
5
13.07.2011 22:33:48
6
13.07.2011 22:33:56
7
8
Durchgang 1
9
13.07.2011 22:33:56
10
13.07.2011 22:34:00
11
12
Durchgang 2
13
13.07.2011 22:34:03
14
13.07.2011 22:34:08
15
16
Durchgang 3
17
13.07.2011 22:34:11
18
13.07.2011 22:34:16
19
20
Durchgang 4
21
13.07.2011 22:34:17
22
13.07.2011 22:34:21
23
24
25
Press any key to continue . . .

Allerdings unter OpenSuse 11.3 ....

von hp-freund (Gast)


Lesenswert?

Genau. Läuft also unter Linux.

von *GAST* (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich konnte mein Problem leider immernoch nicht lösen. Wieso kann 
mit einem Klick auf die exe nciht mein Programm ausgeführt werden?

Im Anhang meine Arbeitsfläche mit der besagten exe-Datei. Was muss ich 
tun, um sie zu öffnen?

von Lukas K. (carrotindustries)


Lesenswert?

*GAST* schrieb:
> Im Anhang meine Arbeitsfläche mit der besagten exe-Datei. Was muss ich
> tun, um sie zu öffnen?

Im Terminal mit
1
mono speedubuntu1.exe
starten.
Vorher natürlich in das Verzeichnis, in dem sich die exe befindet, 
wechseln

Das schrieben schon mehrere Leute vorher...

von *GAST* (Gast)


Angehängte Dateien:

Lesenswert?

das klappt aber leider nicht.

von hp-freund (Gast)


Lesenswert?

mono mono mono

tipp doch bitte mal:

mono speedubuntu1.exe

ein.

von Lukas K. (carrotindustries)


Lesenswert?

Liest du nicht?
1
mono speedubuntu1.exe

von *GAST* (Gast)


Lesenswert?

es funktioniert! danke! gibts auch eine lösung, dass das programm beim 
anklicken startet?

von bluppdidupp (Gast)


Lesenswert?

Ja, lies einfach mal die Beiträge hier und verfolge die Links ;D

von *GAST* (Gast)


Lesenswert?

Das hab ich ja.

modprobe binfmt eingegeben, da kommt auch schon der erste Fehler: FATAL: 
Module binfmt not found.

von Bartli (Gast)


Lesenswert?

Dann installier halt binfmt erst mal, normalerweise erübrigt sich dann 
auch rumgefummele mit modprobe, da die Distributionen das Teil (wenn es 
installiert ist...) per default laden.

von *GAST* (Gast)


Lesenswert?

Ist alles installiert.
Die exe kann ich trotzdem nicht per klick öffnen.
Wie ist das denn mit Firefox? Der ist ja auch von Haus aus auf dem 
Desktop. Und es müsste auch eine exe sein. Und die kann ich per klick ja 
auch ausführen.

von Lukas K. (carrotindustries)


Lesenswert?

*GAST* schrieb:
> Ist alles installiert.
> Die exe kann ich trotzdem nicht per klick öffnen.
> Wie ist das denn mit Firefox? Der ist ja auch von Haus aus auf dem
> Desktop. Und es müsste auch eine exe sein. Und die kann ich per klick ja
> auch ausführen.

Firefox hat eine *.desktop datei, in der sind Dinge wie Icon, 
Programmpfad, Name, etc. definiert.
http://standards.freedesktop.org/desktop-entry-spec/latest/
Das Einfachste in deinem Fall wäre allerdings ein kleines Shellskript, 
welches einen terminalemulator aufruft
1
#!/bin/sh
2
xterm -e "mono speedubuntu1.exe"

von *GAST* (Gast)


Lesenswert?

naja, dann wird mein Programm ausgeführt, wenn ich das in das Terminal 
tippe. Das exe-Symbol funktioniert dadurch aber trotzdem nicht.

von Martin S. (der_nachbauer)


Lesenswert?

Ich erinnere, dass Ubuntu da ein wenig paranoid war, wenn's um das 
Ausführen von *.exe Binaries ging - lies mal hier

http://wiki.winehq.org/FAQ#head-2697b3c2437625eb387ae7360d9b224be0d20bce
http://wiki.ubuntuusers.de/Wine
http://jaypeeonline.net/tips-tricks/create-wine-application-shortcuts-ubuntu/

und übertrage das dort Angegebene ggf. für Mono.

Ggf. funktioniert es auch einfach deshalb nicht, weil Du nur die .exe 
als Icon auf dem Desktop liegen hast.
In diesem Falle müsstest Du entweder
- Mono oder Wine als Standardprogramm zum "Öffnen" von .exe Dateien 
eintragen (google)
- oder besser einen Starter für Deine Anwendung anlegen, welche diese 
über Mono / Wine öffnet (als Befehl für den Starter mono <programm>.exe 
eintragen, also im Prinzip genau das, was Du derzeit auf der Konsole 
eintippst)

Gruss,

Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.