Hacer portable un programa en .NET

por | septiembre 8, 2014

El otro día tuve un problema al tener que generar un programa que se descargaba desde una pagina web. El problema principal me venia que el programa contenía una serie de dll’s necesarias para funcionar.

Parecía que fuera necesario hacer una instalación, pero el principal uso del programa era poder ser ejecutado desde un USB…

Después de buscar mucho por Internet encontré una página donde se documentaba un método propio de Microsoft para juntar exe y dll en un mismo paquete sea también un exe o dll.

Este método en mi caso, permite juntar el programa exe con las dll necesarias para su funcionamiento y esto dentro de un único exe. Esto me permitía tener un solo fichero exe que se podía ejecutar desde un USB. (recordad igualmente que es necesario el Framework con el que este compilado el programa o superior.)

Pasos a seguir

  1. Descargar el programa de Microsoft en el siguiente enlace
    http://www.microsoft.com/en-us/download/details.aspx?id=17630
    Puedes instalar también usando NuGet
    https://www.nuget.org/packages/ilmerge
    La documentación la tenéis en este enlace
    http://research.microsoft.com/en-us/people/mbarnett/ILMerge.aspx
  2. Instalar el programa en la máquina.
  3. Abrir ventana de MS-DOS para ejecutar el programa
    Entrar en la carpeta donde se ha instalado el programa, normalmente esta en
    C:\Program Files (x86)\Microsoft\ILMerge\
  4. Ejecutar ILMerge para unir los ficheros en uno solo
    Sintaxis básica:

    ilmerge [programa.exe] [libreria1.dll] [libreriaN.dll] /out:[programaDestino.exe] /ndebug

Con esto ya tendremos nuestro programa con las dll incrustadas a él. Ya podemos ejecutar el programa sin necesidad de tener instalado las librerías necesarias.

Espero que os sirva de ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *