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
>
>
>

Responder a