Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
ejecutable muy pequeño

Hola amigos estoy tratando de hacer una aplicación que se actualice con frecuencia de un ftp solo el ejecutable.

Como ya se ha tratado aquí en el foro el ejecutable es más grande en la versión de delphi xe6 que es la que uso,
después de probar varias ideas de las que encontré por acá me doy cuenta que sigue siendo grande para lo que necesito.

Entonces probé, en las opciones de runtime packages, le puse a true
Donde dice link whith runtime packeges = true;
Y perfecto es todo lo que necesito un ejecutable de 300k
Ahora bien , como primeramente los clientes van a recibir un instalador en ese instalador
Le voy a poner todo lo que necesito para que me funcione la aplicación y luego en la aplicación voy a poner que se actualice solo el ejecutable .
Lo que necesito saber es como puedo obtener todo lo que necesito para ponerlo en la carpeta con el ejecutable, ya probé poniéndole la opción debug y poniendo a false primero link whith runtime packeges a ver si con todo lo que me genera en la carpeta debug ya es suficiente pero no me funciona cuando uso todo el contenido de debug con el ejecutable pequeño de la carpeta Release y con la link whith runtime packeges = true;

Gracias y feliz 2016

Juank
Responder Con Cita
  #2  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
En otras palabras quero poder copiar todas los ficheros necessarios para que funcione la aplicaion en un instalador y el ejecutable pequeño.
para poder actualizarlo nuevamente , en caso de que use otra dll o bpl nueva pues solamente esa copio.

no se si se pueda hacer eso, hasta ahora el trabajo mayor consiste en copiar todo lo necesario para que funcione el programa.

gracias juank
Responder Con Cita
  #3  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Por qué no lo dejas todo en un ejecutable?
Responder Con Cita
  #4  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
eso sería lo ideal casimiro pero es que estoy muy lejos de los clientes y el ancho de banda no es el mejor, además hay que hacer muchas modificaciones mínimas muy seguido, y quiero quitarme de arriba el problema de actualizar y poder hacerlo muy rapido, mando un correo que actualizen y con un botón se baja solamente el ejecutable nuevo.

A propósito de eso la forma que logre hacer cambiar el mismo ejecutable que uso la encontré en este foro pero no estaba incompleta , hay colegas que ponen solo parte del código y lo que faltaba era más difícil de lograr al menos en mi caso.


Este código funciona perfecto para reescribir el propio ejecutable y reiniciar la aplicación abriendo el ejecutable nuevo suponiendo que el nuevo es D:\miexe.exe:
Código Delphi [-]
  MoveFile(PChar(ParamStr(0)), 'temporal.tmp');
  MoveFile('D:\miexe.exe', PChar(ParamStr(0)));
  ShellExecute(Handle,nil,('miexe.exe'),'','',SW_Shownormal);
 Application.Terminate;


con eso reescribo el exe y ya esta todo lo grado solo me falta poder buscar todos los ficheros necesarios para ejecutar la aplicacion y meterla en un instalador
gracias juank
Responder Con Cita
  #5  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bien, aunque no entiendo el problema, ¿qué tiene que ver el debug?
Responder Con Cita
  #6  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
me imagine que no entendías, el debug no tiene nada que ver es que solo pensé que poniendo debug me ponía en la carpeta debug todo lo que necesitaba pero no fue así.

En resumen lo que quiero es:
poniendo link whith runtime packeges en true en las opciones del proyecto
y marcando Release en lugar de debug que es como más pequeño logro el exe.
Quiero copiar todo lo que necesite mi proyecto para una carpeta y distribuir ese exe pequeño con todo lo que necesito en un instalador y cuando haga alguna modificación actualizar solamente el exe.
Eso es lo que quiero hacer .
Responder Con Cita
  #7  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ah, bien, pues entonces tendrás el .exe y los .bpl por separado.
Cuando modifiques el exe ya no es necesario enviar los bpl.
Responder Con Cita
  #8  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
si eso mismo es lo que quiero lo que no logro es tener los pbl que necesito se me ocurre ahora buscando el dependency walker que me dice los bpl que necesita mi aplicacion
ese programa me da una lista de todos los bpl que uso y la ubicacion, ahora deja ver que invento para lograr copiar todos porque son muchos aun mismo lugar
Responder Con Cita
  #9  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, no te hace falta un programa externo para ver las BPL que usas, ya que estarán en el directorio del programa.
Responder Con Cita
  #10  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
no, lo que tengo en el directorio del programa son las dcu, los bpl no estan ahi.

que cuando marcas {link whith runtime packeges} a true y Release en lugar de debug te hace un exe pequeño y necesitas los bpl para que funcione en cualquier pc con las dcu no me funciona.


Responder Con Cita
  #11  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé si cambia con la versión de delphi que uses, o si es configurable, pero de todas formas, haz una simple búsqueda
Responder Con Cita
  #12  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
ok gracias por tu tiempo feliz 2016
Responder Con Cita
  #13  
Antiguo 02-01-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, ¿has encontrado ya las bpl?
Responder Con Cita
  #14  
Antiguo 02-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
si lo encontre todo con el dependency walker copie todas las dependencias o mejor dicho los caminos a ellas a un tmemo y con un programa en delphi copi todo los ficheros de esos caminos bpl a una sola carpeta luego le puse el ejecutable dentro y funciona en cualquier pc

gracias
Responder Con Cita
  #15  
Antiguo 07-01-2016
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
resumen

Finalmente quisiera resumir lo que necesitaba y la solución para futuros lectores.
No se si es la mejor solución debe haber otra mejor.



El problema es hacer un instalador que tenga un ejecutable muy pequeño en mi caso menos de 1mb para distribuirlo a varios clientes y con un botón dentro de la aplicacion actualizar y descargar de un ftp solamente ese ejecutable pequeño no los demas dll y pbl.

Para que salga pequeño el ejecutable en el Delphi XE6 en mi caso en Project/options/packages/runtime packages marcar a true la opción “Link whith runtime packages” esto saca del ejecutable todos los dpl usados y deja el exe muy pequeño, otro recurso que use y me redujo aún más el ejecutable es en el Porject Manager en la opción build Configuration escoger “Release”.
Luego resta saber que bpl estoy usando con ese .exe para poder copiarlas a una car[eta y distribuirlas en el instalador. Eso lo logré con el programa recomendado por este foro creo llamado Dependency Walker le doy copiar a todos los caminos que me encuentra de los bpl usados y en un sencillo programita en Delphi que hice pego esos caminos en un tmemo y con un botón copio todas esas pbl a una misma carpeta que finalmente al copiarle dentro de la misma el ejecutable pequeño funciona perfectamente. Luego al actualizar solo el ejecutable sigue funcionando todo como antes.

Espero le sirva a alguien . saludos Juank
Responder Con Cita
  #16  
Antiguo 08-01-2016
xalo xalo is offline
Miembro
 
Registrado: ene 2011
Posts: 18
Poder: 0
xalo Va por buen camino
No se si lo conoces o se ha nombrado,pero upx.sourceforge.net[] es una forma simple y rápida de reduir el ejecutable. A parte de lo que mencionaste, lógicamente.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como crear un ejecutable hijo desde mi ejecutable? K04VH4CK Internet 7 14-08-2015 08:02:23
Pequeño reporteador lafirma Impresión 0 10-07-2004 00:16:44
Hacer ejecutable mas pequeño ElCherchu Varios 2 21-11-2003 16:08:22


La franja horaria es GMT +2. Ahora son las 06:13:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi