Angenommen, Mono ist auf allen Ihren Zielmaschinen installiert, dann können Sie (manuell) einen .app-Paketordner zusammenstellen, der Ihre .exe-Datei ausführt, wenn ein Benutzer darauf doppelklickt. Es gibt eine Reihe von Dingen, die Sie in das .app-Paket einfügen müssen. Eine davon ist eine Befehlsshell-Datei, die Ihre .exe startet und beim Ausführen von .app ausgeführt wird.
B.t.w. Visual Studio Mac und Xamarin Studio und MonoDevelop sind allesamt verschiedene Twists zum selben Thema, MonoDevelop. VS Mac und XS haben Extras, aber die grundlegende zugrunde liegende IDE ist MD. Welches dieser Produkte Sie auch verwenden, um Ihren Code zu kompilieren, ist unwahrscheinlich, dass sich etwas anderes als das nächste ergibt.
Die Struktur des Grund .app Ordners:
MyApp.app
+-- Contents
--- Info.plist
+-- MacOS
--- MyApp
--- MyApp.exe
+-- Resources
--- MyApp.icns
Die Inhalte sind wie folgt:
Info.plist ist ein Mac OS-spezifische XML-Datei, die eine Beschreibung Ihres .app-Pakets enthält. Es wird wie folgt aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>MyApp</string>
<key>CFBundleIconFile</key>
<string>MyApp.icns</string>
<key>CFBundleIdentifier</key>
<string>com.myapp</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>My App Name</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.2.3</string>
<key>CFBundleSignature</key>
<string>xmmd</string>
<key>CFBundleVersion</key>
<string>1.2.3</string>
<key>NSAppleScriptEnabled</key>
<string>NO</string>
</dict>
</plist>
Die MyApp.icns Datei ist eine Symboldatei Sie für Ihre App-Paket als Symbol verwendet wird.
Die Datei MyApp.exe ist Ihre kompilierte .NET-Exe.
Die MyApp-Datei ist eine ausführbare Befehlsdatei, die ausgeführt wird, wenn das .app-Paket vom Benutzer ausgeführt wird. Dies wird in der plist-Datei unter CFBundleExecutable referenziert und muss ausführbar sein (+ x permissions,). Dies ist, was es aussehen könnte:
#!/bin/sh
DIR=$(cd "$(dirname "$0")"; pwd)
MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current
export DYLD_FALLBACK_LIBRARY_PATH="$DIR:$MONO_FRAMEWORK_PATH/lib:/lib:/usr/lib"
export PATH="$MONO_FRAMEWORK_PATH/bin:$PATH"
exec mono "$DIR/MyApp.exe"
Hoffnung, das hilft. Prost, Martin.
Ich bekomme auch eine EXE, wenn ich für Linux und auf meiner Ubuntu-Box mit Mono installiert bin, kann ich einfach auf die ausführbare Datei doppelklicken, um es auszuführen. Wenn das nicht funktioniert, können Sie vielleicht ein Shell-Skript oder eine native Anwendung erstellen, die die exe ausführt? –
Ja Doppelklick ist nicht woking, ich renne es von Shell und ich glaube nicht, dass die Benutzer mit Shell zufrieden sein werden oder mono Framework herunterladen müssen, um es auszuführen. Also ich denke, ich werde es mit Java bauen, da ich noch nie eine native Mac App gebaut habe. Trotzdem danke! – ozimax06