INNO SETUP #DESINSTALACAO
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??
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
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
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??
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
; -- 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
Precisa falar corretamente ,o que precisa ..... pq tudo é diferente de tudo
Não creio que voce quer desinstalar se estiver instalado
Não creio que voce quer desinstalar se estiver instalado
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.
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.
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
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
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)
[Ô]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)
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}[Ô]
[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}[Ô]
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...
####
Consegui executar aquele script, rsrs, mas ele só funciona no uninstall vou procurar algum código que funcione na install...
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
esse forum é infalivel tenta seguir as funcoes desse
http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version
Tópico encerrado , respostas não são mais permitidas