Cita del artículo original (por favor, siga el hilo en el artículo original, así embargo):
Mkbundle: paquete Mono con sus aplicaciones
¿Se ha preguntado por qué es necesario. NET Framework o Mono instalado para ejecutar su programa? Bueno, sería mucho más útil si pudieras distribuir tus aplicaciones sin molestar a tus clientes para que instalen frameworks adicionales, ¿no es así? Aqui estamos. Permite agrupar una aplicación basada en .NET con Mono, por lo que no necesita Mono o .NET instalado para ejecutarlo.
Preparar un entorno
En primer lugar es necesario instalar más reciente Mono y Cygwin. Instalar Mono es muy sencillo, así que no puedes arruinar nada. Cuando comiences a instalar Cygwin, ve a la Vista completa, luego incluye 4 paquetes adicionales. Estos son: gcc, mingw, mingw-zlib y zlib.
Ahora necesita un símbolo del sistema. Tanto Mono como Cygwin crean accesos directos para las solicitudes de comando en su escritorio, pero necesita combinarlos en uno solo. Aquí hay un lote que lo hace por mí. Puede necesitar cambiarlo, si tiene otra versión Mono, por ejemplo.
Código:
echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%
chdir C:\cygwin\bin
bash --login -i
Bundle una aplicación con Mono
Así que ahora estamos en un símbolo del sistema, la ejecución de este modo de Cygwin. Tenga en cuenta que esto ya no es un aviso de DOS, y "dir" ya no funcionará. Para listar archivos use el comando de Linux "ls". La carpeta que está explorando ahora es como la siguiente. Arek es un nombre de usuario. Código:
C:\cygwin\home\Arek
Navegar a esta carpeta con su explorador. Ahora copia 2 archivos en esta carpeta. El primero es su aplicación exe y el segundo es el archivo Mono.dll (2MB) que puede encontrar en su carpeta Mono. Código:
C:\Program Files\Mono-2.4\bin
Por alguna razón todo el procedimiento no funciona con nombres de archivo largos, por lo que cambiar el nombre de su exe aplicación. Debería cumplir con este antiguo nombre de DOS 8.3.
Vamos a volver al símbolo del sistema. Solo necesita 1 comando para agrupar su aplicación, y aquí hay alguna explicación.
mkbundle es un programa dentro del paquete Mono | -o Bundled1.exe especifica cómo se nombrará el exe Mono-bundled | Winform1.exe dice lo que se incluirá, las bibliotecas Mono se incluirán de todos modos | --deps es necesario aunque no estoy seguro de qué hace | -z comprimirá la salida exe mucho Código
:
mkbundle -o Bundled1.exe Winform1.exe --deps -z
Así que ahora tienes tu Bundled1.exe, que contiene su propia aplicación en sí, junto con Mono. No debería necesitar Mono ni .NET para ejecutarlo. Tenga en cuenta que tendrá un tamaño de 4 MB o más. Esos ex integrantes no son livianos.