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
- 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 - Instalar el programa en la máquina.
- 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\ - Ejecutar ILMerge para unir los ficheros en uno solo
Sintaxis básica:
1ilmerge [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.