2009-04-15 22 views
13

Estoy buscando trabajar en una aplicación que necesita ejecutarse tanto en Windows como en OSX. Como ya estoy muy familiarizado con C# /. NET, pensé en echar un vistazo al uso de Mono. Pero también quiero que sea muy fácil de instalar y no quiero que los usuarios tengan que instalar el paquete Mono por separado. ¿Es posible crear un paquete de OS X.app que simplemente incluye TODO? Es decir, mi aplicación, los recursos y el tiempo de ejecución Mono completo?Posible incluir Mono Runtimes en el paquete OSX .app?

Respuesta

11

Sí, puedes hacer esto. Elija una aplicación, cualquier aplicación y Mostrar contenido del paquete. Explore un poco y verá que hay un directorio Contents/MacOS adentro. Contendrá un archivo con el bit de ejecución establecido. Puede ser un código de máquina o cualquier secuencia de comandos anterior con una línea #! al principio. Todo lo que necesita hacer es duplicar la estructura del directorio con una aplicación de esqueleto, introducir su tiempo de ejecución de Mono en el directorio de Recursos en alguna parte, y escribir un script bash que lo inicialice todo. Puede haber utilidades automatizadas para hacer esto flotando por ahí, pero es bastante fácil hacerlo manualmente.

Recomendaría utilizar su herramienta de compilación favorita para automatizar este proceso.

+0

respuesta impresionante. Estoy seguro de que no es recomendable, aunque ... –

+0

Gracias. En cualquier caso, realmente depende de lo que quiere decir con "no recomendado". Si lo hiciste al 100% manualmente, entonces sí, absolutamente, esa es una mala idea. Sería un serio problema de implementación allí. Pero el primer paso para automatizar algo es saber cómo hacerlo manualmente. Para aclarar, si no hay una herramienta de empaquetado preconstruida para hacer esto para el tiempo de ejecución Mono, escriba una secuencia de comandos rápida para automatizar esto e insértelo en su proceso de compilación. –

+0

Al "inicializar todo", ¿qué quieres decir? ¿Quiere decir que inicia llamadas una función de línea de comandos como "mono hello.exe"? ¿Podría indicarnos un enlace? Gracias. –

2

Es posible, con un poco de piratería y algo de diversión de herramientas para compilar una aplicación .NET estáticamente dirigida para la plataforma Mac OS, sin necesidad de implementar mono con ella. Echa un vistazo a este sitio web sobre cómo Mono se está utilizando estáticamente en algunas aplicaciones de iPhone.

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

Otro gran recurso es el canal #mono en irc.gnome.org o irc.gimp.net (http://mono-project.com/IRC)

+0

Esto no es realmente necesario en el mac. IOS necesita hacer esto debido a su estricta política de enlace estático único. Mac no tiene tales restricciones. – Shayne

Cuestiones relacionadas