Pregunta

Me gustaría convertir mi sencilla utilidad de consola .Net 2.0 puro en un exe portátil que tan sólo pudiera poner en una memoria USB y ejecutarlo sin tener que preocuparse de si están instaladas las bibliotecas de CLR y el marco en una máquina en particular o no .

alguna información sobre el uso de y href="http://linux.die.net/man/1/mkbundle" rel="nofollow noreferrer"> Mkbundle para la creación de autónomos ex de Windows desde .Net-proyectos, pero lo que me gustaría tener es un COMO compacta pero útil.

¿Cuáles son los pasos mínimos para lograr una portabilidad desde un simple proyecto de C # Visual Studio?

¿Fue útil?

Solución

He encontrado un sencillo de cómo hacerlo, aquí , sin embargo, ya que no he probado a mí mismo, no puedo garantizar resultados. Como de costumbre tu caso es distinto.

Cita del artículo original (por favor, siga el hilo en el artículo original, así embargo):

  

Mkbundle: Mono paquete con sus aplicaciones

     

¿Se ha preguntado por qué necesita .NET Framework o Mono instalado para ejecutar su programa? Así, sería mucho más útil si se pudiera distribuir sus aplicaciones sin regañar a sus clientes para instalar los marcos adicionales, ¿no es así? Aqui estamos. Vamos a distribuir una aplicación basada en .NET con Mono, por lo que no es necesario Mono o .NET instalado para ejecutarlo.

     

Preparar un entorno

     

En primer lugar es necesario instalar más reciente Mono y Cygwin. Instalación de Mono es muy sencillo lo que no puede estropear nada. Cuando se inicia la instalación de Cygwin, vaya a la vista completa, a continuación, por favor incluya 4 paquetes adicionales. Estos son: gcc, MinGW, MinGW-zlib y zlib

.      

Ahora necesita un símbolo del sistema. Tanto Mono y Cygwin crear accesos directos para los símbolos del sistema en el escritorio, pero hay que combinarlas en una sola. Aquí es un lote que lo hace por mí. Puede que tenga que cambiarlo, si tiene otra versión de 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
     

Lote una aplicación con Mono

     

Así que ahora estamos en un símbolo del sistema, la ejecución de este modo de Cygwin. Observe que esto es no solicita un DOS más, y "dir" no funcionará más. Para una lista de archivos utilizan "ls" Linux comando. La carpeta que está navegando ahora es como la de abajo. Arek es un nombre de usuario.   Código:

C:\cygwin\home\Arek
     

Navegar a esta carpeta con su explorador. Ahora copiar 2 archivos en esta carpeta. Primero es su exe aplicación y segundo es el archivo Mono.dll (2 MB) que se pueden encontrar en la carpeta de 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. Debe cumplir con este viejo DOS nomenclatura 8.3.

     

Vamos a volver a la línea de comandos. Sólo necesita 1 comando para empaquetar su aplicación, y aquí es una explicación.

     

mkbundle es un programa dentro del paquete Mono | -o Bundled1.exe especifica cómo el exe liado-mono se llamará | Winform1.exe dice lo que va a ser incluido, bibliotecas Mono se incluirán todos modos | --deps es necesaria, aunque no estoy seguro de lo que 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 ser necesario Mono ni .NET para ejecutarlo. Observe que será de 4 MB o más de tamaño. Esos ex de paquetes no son de peso ligero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top