Gracias Francisco, muy explicito....
>________________________________ >De: francisco prieto <[email protected]> >Para: GUFA List Member <[email protected]> >Enviado: jueves 15 de septiembre de 2011 0:16 >Asunto: [GUFA] Re: [GUFA] [GUFA] Método de Actualización. > > >Alfonso, > >Si... Ya pase por el mismo tema... > > >El truco es este... > > >Te armas un exe que nada tenga que ver con tu aplicación ... > > >En mi caso le puse de nombre Runner... pero como te imaginaras le podes poner >el nombre que se te ocurra... > > >El programa básicamente lo que debe hacer es leer un archivo ini... > > >este archivo a su vez tiene una entrada para el Runner, > > >[Runner] >DirNewVer=F:\Fuentes\ACE\Instaladores\Distribuir\ >Sistema=ACE > > >que le indica cual ese el nombre del exe y donde se encuentra la >ultima versión... > > >Ahora solo te queda saber como darte cuenta cual es la última versión... > > >Para eso, en mi caso uso el versionador de VFP, con lo cual la versión va a >estar "compilada" en el exe... > > >Bueno si sigo esa norma, con este algoritmo se si debo copiar o no ese exe... > > >LOCAL llHuboError >lcSistemaOri=_Screen.DirNewVer+_Screen.Sistema+".EXE" >lcSistemaDes=_Screen.Sistema+".EXE" >Thisform.PoneColor() >If File(lcSistemaDes) >lnObtuvoD=Agetfileversion(laVerAct,lcSistemaDes) >lnSizeD=SizeArray[ADIR(SizeArray, lcSistemaDes),2] >Else >lnSizeD=0 >Endif >Thisform.PoneColor() >lnObtuvoO=Agetfileversion(laVerNew,lcSistemaOri) >Thisform.PoneColor() >If Empty(lnObtuvoO) >lcTexto="No se puede obtener la nueva actualización. Los motivos pueden ser >los siguientes:"+Chr(13)+; >"1) El sistema recien fue instalado y esta mal configurado."+Chr(13)+; >"2) El sistema acaba de ser actualizado y la actualización en el servidor está >corrupta."+Chr(13)+; >"3) El servidor no esta disponible en este momento (muy probale si Ud. accede >a traves de Internet)."+Chr(13)+; >"Si accede por Internet, revise si tiene internet, si no tiene consulte con su >proveedor,"+; >" caso contrario espere 5 minutos e intente nuevamente." >Messagebox(lcTexto,16,"Avise a Sistemas") >llHuboError=.T. >Else >lnSizeO=SizeArray[ADIR(SizeArray, lcSistemaOri),2] >*MESSAGEBOX(STR(lnObtuvoD)+","+laverNew[4]+","+laVerAct[4]) >lnVersionNew=Val(Getwordnum(laVerNew[4],1,".")) >lnReleaseNew=Val(Getwordnum(laVerNew[4],2,".")) >lnCompilacionNew=Val(Getwordnum(laVerNew[4],3,".")) >llVerNueva=.F. >llVerIgual=.F. >If !Empty(lnObtuvoD) >lnVersionAct=Val(Getwordnum(laVerAct[4],1,".")) >lnReleaseAct=Val(Getwordnum(laVerAct[4],2,".")) >lnCompilacionAct=Val(Getwordnum(laVerAct[4],3,".")) >llVerNueva=lnVersionNew>lnVersionAct Or lnReleaseNew>lnReleaseAct Or >lnCompilacionNew>lnCompilacionAct >llVerIgual=lnVersionNew=lnVersionAct And lnReleaseNew=lnReleaseAct And >lnCompilacionNew=lnCompilacionAct >Endif >Thisform.PoneColor() > > >If (!File(lcSistemaDes) Or Empty(lnObtuvoD) Or llVerNueva Or; >(llVerIgual And lnSizeO#lnSizeD)) >Wait Window "Realizando actualización. Aguarde un momento por favor..." Nowait >Noclear >Copy File &lcSistemaOri To &lcSistemaDes >Wait Clear >Endif >Endif >Thisform.PoneColor() >If !llHuboError And File(lcSistemaDes) >lnObtuvoD=Agetfileversion(laVerAct,lcSistemaDes) >Endif >Thisform.PoneColor() >If !llHuboError And !File(lcSistemaDes) Or Empty(lnObtuvoD) >Messagebox("No se pudo instalar adecuadamente la actualización.",16,"Avise a >Sistemas") >llHuboError=.T. >Endif >Thisform.PoneColor() >If !llHuboError And (laVerNew[4]=laVerAct[4]) >lnSizeO=SizeArray[ADIR(SizeArray, lcSistemaOri),2] >lnSizeD=SizeArray[ADIR(SizeArray, lcSistemaDes),2] >If lnSizeO#lnSizeD >Messagebox("Aun no se terminó de actualizar el servidor.",16,"Espere unos >minutos e intente nuevamente") >llHuboError=.T. >Endif >Endif >Thisform.HuboError=llHuboError >Thisform.Release() > > >Espero que te sirva, > > >Saludos, > > >Pancho >Córdoba > > >El 15 de septiembre de 2011 02:36, Alfonso Arias Lemas <[email protected]> >escribió: > >Hola colegas, >> >> >>Gustaria de saber su opiniones sobre este tema. >>Estoy implementando un método para que mis sistemas hagan actualizaciones de >>forma automática con los archivos recientes colocados en el servidos, hasta >>aquí todo bien. Ya logre hacer los download para el equipo local, el problema >>me surge cuando tengo en nuevo .EXE en el computador y tengo que subtituirlo >>por el viejo, Cómo lo hago? si el control de sistema es el .EXE viejo y es el >>mismo que esta corriendo, o sea, no puede copiarse asi mismo, >>Alguna idea compañeros????? >> >> >>Saludos, >> Alfonso > > >
