2013-03-05 3 views
1

Я пишу установщик NSIS для одного из приложений, которые компания, с которой я работаю для внутреннего использования, работает нормально, без проблем создаются все ключи REG и так же как и папки и службы файлов, которые использует приложение. По какой-то причине я не могу понять, процесс удаления не работает.NSIS uninstaller не удаляет файлы/папки

Службы, созданные приложением, удаляются, а также ключи реестра, самая простая часть, сами файлы, я не могу удалить их через деинсталлятор!

#Includes 
!include "x64.nsh" 
#Defines and Installer Properties 
Outfile "ESTvnc Installer.exe" 
Name ESTvnc 
Icon "${NSISDIR}\contrib\graphics\icons\VNCON.ico" 
#Detect OS Version 
Function .onInit 
    StrCpy $instdir $PROGRAMFILES 
    ${If} ${RunningX64} 
     StrCpy $instdir $PROGRAMFILES32 
    ${EndIf} 
FunctionEnd 

section 
    SetShellVarContext all 
    CreateDirectory $instdir\EST\ESTvnc 
    setOutPath $instdir\EST\ESTvnc 
    File /r installfiles\* 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ESTvnc\" \ 
       "DisplayName" "ESTvnc" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ESTvnc"\ 
       "UninstallString" "$instdir\EST\ESTvnc\uninstaller.exe" 
    writeUninstaller $instdir\EST\ESTvnc\uninstaller.exe 
    ExecWait '"$instdir\EST\estvnc\estvnc.exe" -install' 
sectionEnd 

section "Uninstall" 
    SetShellVarContext all 
    SimpleSC::StopService "ESTVNC" 1 30 
    pop $0 
    SimpleSC::StopService "ESTVNCSR" 1 30 
    pop $0 
    SimpleSC::RemoveService "ESTVNC" 
    SimpleSC::RemoveService "ESTVNCSR"  
    RMDir /r "$instdir\EST\ESTvnc" 
    Delete $instdir\EST\ESTvnc\uninstaller.exe 
    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ESTvnc" 
sectionEnd 

ответ

4

В деинсталлятор, $instdir это каталог деинсталлятор в!

Либо поместите деинсталлятор в $instdir и удалить $instdir\EST\ESTvnc или если вы хотите сохранить его в $instdir\EST\ESTvnc, удалять $instdir ...

Смежные вопросы