Archive: Problem with uninstall


Problem with uninstall
Hello,

I' currently experiencing problems in beta 2.04 (last download) with MUI_UNPAGE_INSTFILES and the basic MUI demo.

On uninstall, once clicked on the button Uninstall, the windows disappear after a short time, I dont get the Finish button and the HKCU key is not removed in the register.

If I comment the MUI_PAGE_CONFIRM and the MUI_UNPAGE_INSTFILES lines in the code, the uninstall process uses the "old" style and works as usual with the progress bar and the finish button.

What am I doing wrong ?

Thank you for your help,

BB


Because of a but in yesterday's System.nsh, uninstaller auto close was always set to true, even if there is no finish page.

This has been fixed. However, the uninstaller sections were still executed, so you have probably made a typo in the registry key removal code.


Joost,

There is not a typo, and found the problem arises only with the multilanguage example.

I've compiled the Welcomefinish example and it works properly.

I will try to find the offending code in the multilanguage example which prevent deleting the registry key.

My candidate is !insertmacro MUI_UNGETLANGUAGE in the un.oninit function, but I have still to do more tests.

I will report the results later...

Thank you for your support !

BB


This macro can't prevent you from deleting a registry key, they only this is does is setting $LANGUAGE.


Hello,

You are right.

In fact, the problem comes from :

!insertmacro MUI_LANGDLL_SAVELANGUAGE

at the end of the macro MUI_FUNCTION_INSTFILESPAGE called in MUI_PAGE_INSTFILES called in MUI_FUNCTION_INSTFILESPAGE macro.

The function write the registry with the langage value after the desinstallation process is done. It should be disabled when the function is called from a desinstall.

So, to prevent this without alter the system code, I commented the lines in the script :

;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\Modern UI Test"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"

and writing myself the key inside the install section.

Of course, during uninstall, I also have :

DeleteRegKey HKCU "Software\Modern UI Test"

instead

DeleteRegKey /ifempty HKCU "Software\Modern UI Test"

to force deletion.

Hope it can help,

BB


Thank you for reporting this issue. Fixes for your problems will be uploaded soon.


Thank you/Merci Joost and congratulations for your job.

BB