2009-04-15 12 views
13

Sto cercando di lavorare su un'applicazione che deve essere eseguita sia su Windows che su OSX. Dato che ho già molta familiarità con C# /. NET, ho pensato di dare un'occhiata all'utilizzo di Mono. Ma voglio anche che sia molto facile da installare e non voglio che gli utenti debbano installare separatamente il pacchetto Mono. È possibile creare un pacchetto OS X .app che include semplicemente TUTTO? Cioè, la mia app, le risorse e il runtime Mono completo?È possibile includere Mono Runtimes nel pacchetto OSX .app?

risposta

11

Sì, è possibile farlo. Scegli un'app, qualsiasi app e Mostra i contenuti del pacchetto. Esplora un po 'e vedrai che c'è una directory Contents/MacOS all'interno. Conterrà un file con il bit bit di esecuzione. Questo può essere codice macchina o qualsiasi vecchio script con una riga #! all'inizio. Tutto quello che devi fare è duplicare la struttura delle directory con un'app scheletro, spostare il tuo runtime Mono nella directory Risorse da qualche parte e scrivere uno script bash che inizializzi tutto. Potrebbero esserci programmi di utilità automatizzati per farlo fluttuare da qualche parte, ma è piuttosto facile farlo manualmente.

Si consiglia di utilizzare lo strumento di creazione preferito per automatizzare questo processo.

+0

risposta impressionante. Sono sicuro che non è raccomandato, però ... –

+0

Grazie. In ogni caso, dipende davvero da cosa intendi con "non raccomandato". Se lo facevi manualmente al 100%, allora sì, assolutamente, è una cattiva idea. Ci sarebbero alcuni gravi problemi di distribuzione lì. Ma il primo passo per automatizzare qualcosa è sapere come farlo manualmente. Per chiarire, se non è disponibile uno strumento di impacchettamento predefinito per il runtime Mono, scrivere uno script rapido per automatizzarlo e inserirlo nel processo di compilazione. –

+0

"Inizializza tutto", cosa intendi? Vuoi dire che inizia a chiamare una funzione da riga di comando come "mono hello.exe"? Potresti indicarci un link? Grazie. –

2

E 'possibile, con un bel po' di hacking e qualche toolchain divertente compilare un'app .NET indirizzata staticamente alla piattaforma Mac OS, senza bisogno di distribuire mono con esso. Guarda questo sito parlando di come Mono viene usato staticamente in alcune app per iPhone.

http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars

Un'altra grande risorsa è il canale #mono su irc.gnome.org o irc.gimp.net (http://mono-project.com/IRC)

+0

Questo non è davvero necessario sul mac. IOS deve eseguire questa operazione a causa della sua politica di collegamento statico rigoroso. Mac non ha tali restrizioni. – Shayne

Problemi correlati