Quando ho abc.exe generato dalla sorgente C # / Mono, uso 'mono abc.exe'.
C'è un modo per eseguire abc.exe con 'abc.exe' non 'mono abc.exe'? Voglio dire, quando eseguo 'abc.exe', posso rendere 'mono abc.exe' chiamato automaticamente?
Fondamentalmente quello che devi fare è usare uno degli strumenti Mono (mkbundle è generico mentre macpack è progettato per funzionare su Mac OS X) per collegare tutti i tuoi eseguibili, risorse e dll dell'applicazione in un singolo file eseguibile che può essere eseguito successivamente come singola app.
Dal documento macpack:
macpack è uno strumento che deve essere utilizzato per raggruppare le applicazioni Cocoa # in pacchetti Double-Clickable, Finder friendly su Mac OS X. Raggruppa librerie e risorse statiche, oltre a generare un'informazione di base in il pacchetto .app.
Ad esempio i seguenti comandi sono usati per costruire CurrencyConverter.exe in un pacchetto di applicazioni:
$ mcs -g -debug+ CurrencyConverter.cs -out:CurrencyConverter.exe -pkg:cocoa-sharp
$ rm -rf CurrencyConverter.app
$ macpack -m:2 -o:. -r:/Library/Frameworks/Mono.framework/Versions/Current/lib/
libCocoaSharpGlue.dylib -r:CurrencyConverter.nib -n:CurrencyConverter
-a:CurrencyConverter.exe
Il risultante CurrencyConverter.app è solo un'altra applicazione Mac OS X per quanto riguarda il Finder, e può essere aperto da Finder o lanciato da Terminal usando il comando open -a CurrencyConverter.
Migliorando la risposta di Calavera per permetterti di farlo con un parametro, lo script dovrebbe essere simile a:
#!/bin/bash
mono $1
In questo modo puoi:
./abc.sh name_of_the_app.exe
Avrei aggiunto questo come commento, ma il formato sarebbe stato perso
Non ho molta esperienza con mono ma probabilmente dovrai creare uno script di shell eseguibile che faccia call per te. Qualcosa come:
$ vi abc.sh
#!/bin/bash
#abc.sh
mono abc.exe
:wq
$ chmod +x abc.sh
$ ./abc.sh
Leggi altre domande sui tag command-line mono development macos