INNO SETUP #DESINSTALACAO

NALDOXD 02/03/2012 11:45:20
#396262
Olá eu gostaria de saber como faço para configurar o meu instalador a desinstalar uma versão antiga antes de instalar uma nova por exemplo vamos suporte que hoje o meu programa [Ô]teste.txt[Ô] esteja na versão 1.0.0 no cliente e eu queira mandar uma versão mais recente do meu instalador compilado pelo inno setup eu queria desinstalar o meu programa e instalalo novamente na versão mais nova [Ô]1.1.0[Ô] no mesmo instalador, teria como??
USUARIO.EXCLUIDOS 02/03/2012 12:53:19
#396271
Resposta escolhida
Olá, vai precisar pesquisar , vo te dar uma dica
primeiro, com tasks tem como validar um parametro criado
segundo esse parametro sera o nome da funcao
terceiro na funcao - tem uns comandos exists ..... ou ira usar RegisterExists ou Fileexists

quando cair nessa validacao
vc tera que executar o unistall validando o arquivo pelo fileexists .....
apartir dai voce continua a instalacao a partir desse ponto

A questao seria se sua base for arquivo e estiver dentro da mesma pasta ele será removido
Existe a questao de sobrepor .....tb .... cuidado para nao exluir nem sobrepor

do resto seria mais interassante seria nao usar innosetup seria fazer uma linkagem do ftp de arquivo compactado. esse não tem erro
NALDOXD 02/03/2012 15:23:47
#396292
hm entendo mas a minha dúvida é se no mesmo instalador (INSTALACAO) tem como executar um scrpt para verificar e caso ja exist desinstalar.... pois ja vi exemplos só que separado de instalador e desinstalador nao vi nada junto, vc ja viu algum??
USUARIO.EXCLUIDOS 02/03/2012 16:10:27
#396299
Da uma testada nesse código .

; -- UninstallCodeExample1.iss --
;
; This script shows various things you can achieve using a [Code] section for Uninstall

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: [Ô]MyProg.exe[Ô]; DestDir: [Ô]{app}[Ô]
Source: [Ô]MyProg.chm[Ô]; DestDir: [Ô]{app}[Ô]
Source: [Ô]Readme.txt[Ô]; DestDir: [Ô]{app}[Ô]; Flags: isreadme

[Code]
function InitializeUninstall(): Boolean;
begin
Result := MsgBox([ô]InitializeUninstall:[ô] #13#13 [ô]Uninstall is initializing. Do you really want to start Uninstall?[ô], mbConfirmation, MB_YESNO) = idYes;
if Result = False then
MsgBox([ô]InitializeUninstall:[ô] #13#13 [ô]Ok, bye bye.[ô], mbInformation, MB_OK);
end;

procedure DeinitializeUninstall();
begin
MsgBox([ô]DeinitializeUninstall:[ô] #13#13 [ô]Bye bye![ô], mbInformation, MB_OK);
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usUninstall:
begin
MsgBox([ô]CurUninstallStepChanged:[ô] #13#13 [ô]Uninstall is about to start.[ô], mbInformation, MB_OK)
// ...insert code to perform pre-uninstall tasks here...
end;
usPostUninstall:
begin
MsgBox([ô]CurUninstallStepChanged:[ô] #13#13 [ô]Uninstall just finished.[ô], mbInformation, MB_OK);
// ...insert code to perform post-uninstall tasks here...
end;
end;
end;


No Help http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents tem a parte de unistall da uma olhada


USUARIO.EXCLUIDOS 02/03/2012 16:12:26
#396300
Precisa falar corretamente ,o que precisa ..... pq tudo é diferente de tudo

Não creio que voce quer desinstalar se estiver instalado
NALDOXD 02/03/2012 16:44:38
#396306
bom deixa eu tentar explicar,

Tenho um instalador hoje na versão 1.0 funcionando normamente todos os meus cliente possuem ele e eles roda normal...
Só que vou precisar fazer uma grande modificação no meu sistema e em DLLs e as minhas antigas DLLs na versão 1 não serão mais necessarias..
Agora eu tenho o instalador na versão 2.0 funcionando, só que os nomes do arquivos que ele irar instalar são os mesmo da versão 1 então para não acontecer nenhum comflito e
nenhum interrupção precisaria desinstalar os arquivos da versão 1 e instalar a versão 2, queria saber como fazer isso com inno setup ou se tem como fazer isso.
USUARIO.EXCLUIDOS 02/03/2012 17:30:20
#396312
NALDOXD rodou o script q te passei ? de desinstalacao

Se vc tem a instalacao da versao 2
e quer remover os arquivos da 1 voce pode fazer isso no EXE mesmo
ou mesmo juntar os 2 scripts

a instalacao vc sabe é mover arquivos e criar icones
a desinstalacao vc precisar testar que é criar uma variavel e dela executar uma funcao
ai é só juntar os 2 ... num script só e achar em que parte quer q isso seja executada

algo pronto em portugues sera dificil de achar .... só vai achar em materias em ingles
NALDOXD 02/03/2012 18:20:54
#396320
sim o seu script tentei rodas mas da um erro no final com a seguinte mensagem:
[Ô]Cannot target Uninstall as this time. Please run Setup succesfully to completion first.[Ô]
[Ô]Não é possível desinstalar o alvo como desta vez. Por favor execute a instalação com sucesso a primeira conclusão.[Ô] (By: Translator)
USUARIO.EXCLUIDOS 02/03/2012 18:53:05
#396323
Rodei aqui , fiz apenas isso para testar , só que essas funcoes trabalham Depois de executar a desinstalacao , carma que vo continuar procurando até domingo desvendamos isso rsrs .

[Setup]
AppName=My Program
AppVerName=My Program
AppVersion=1.5
DefaultDirName=C:\Arquivos de programas\CCleaner
DefaultGroupName=My Program
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: [Ô]C:\Arquivos de programas\CCleaner\CCleaner.exe[Ô]; DestDir: [Ô]{app}[Ô]
NALDOXD 03/03/2012 09:07:31
#396362
rsrs, sim esse código funciona tanto como o [UninstallDelete] ele deleta o file corretamente só que ai vem o porém, para eles rodarem eu tenho que mudar a opção de setup para uninstall, pois se eu deixo ele com a opção de setup ele simplesmente ignora a questão de [UninstallDelete] e não deleta os arquivos, já se eu marca a opção de uninstall ele simplesmente delta ignorando o setup de instalação e eu gostaria de juntar os dois, antes de executar o instalador ele deletar os arquivos caso exista e depois simplesmente instala-los novamente =s

####

Consegui executar aquele script, rsrs, mas ele só funciona no uninstall vou procurar algum código que funcione na install...
USUARIO.EXCLUIDOS 05/03/2012 17:09:17
#396467
Aparentemente o que vc quer chama UnInstall Old Version

esse forum é infalivel tenta seguir as funcoes desse
http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas