AdvUninstLog.txt revision 7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickOverview
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickAdvanced Uninstall Log for NSIS was born in the need to cover a specific gap.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIt's been discussed fairly enough that the File /r command is very useful
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickin cases when developers want to add a huge amount of sub directories and
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickfiles, nevertheless it has the disadvantage that such an installation should
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickbe uninstalled with RmDir /r which is risky and removes also data that has
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickbeen added/created later within the installation folder.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickAbout Advanced Uninstall Log.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickAdvanced Uninstall Log is a macro system provided in a NSIS header that
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickis able to monitor an installation and build an uninstall log file which
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickis used by the uninstaller to uninstall files/directories that have been
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickadded within specific installation blocks.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickThis means that files which have been installed outside these blocks,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickor added later either by the user or application's activities, ignored
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickby the uninstaller.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickMoreover files that might exist into the target directory prior the current
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickinstallation, ignored as well.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickAdvanced Uninstall Log creates an uninstall log that removes only files that
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickhave been installed and optionally interacts with users for every other file
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickand/or directory has found in installation folder and requires permission to
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickremove these files/directories.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIt is enhanced as well to support updates, e.g. if the installer later would
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickupdate the installation by adding new data, the uninstaller would remove the
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nicknew data that has been added by the installer, without bothering users about.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickFeatures
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIf target installation folder exists and contains files and/or directories
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickthey all preserved from being uninstalled.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickUninstaller removes data that has been added within specific installation
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickblocks, preserving all other data that has been created/added outside of
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickthese installation blocks. See included examples for details.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickSupports unlimited updates/reinstallations.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickSupports two uninstaller modes. Interactive mode requires confirmation
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickto remove every other file exept those files that have been installed.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickUnattended mode leaves intact every other file without bothering users.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIn case when uninstall log (uninstall.dat) has been removed manually instead
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickof execute uninstaller, if users attempt to run the installer later, a warning
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickissued that they should select a new output folder.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickImplements only the included with NSIS release headers FileFunc and TextFunc.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickThere is no need for external plugins and headers, adds a very small overhead.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickRestrictions
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIf uninstall log (uninstall.dat) is missing uninstaller won't execute at all.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickDue to file create - write procedure that is required in order to add/update
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickthe uninstall log (uninstall.dat), restricted users on NT based systems won't
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickbe able to execute the installer.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickDisadvantage
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickSince the header does not implement anything else than the common NSIS release,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nicka delay occurs while builds and reads the uninstall log because it needs to
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickthrow the list several times. Talking for common cases, most likely the delay
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickwon't be noticeable, however, in cases where the target directory isn't empty
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickand contains a large amount of data which will be excluded from uninstall log,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickor added large amount of data after the installation which will be excluded also,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickthe delay should be noticeable.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickCredits
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickA very big thanks goes to kichik.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickWhen my idea of the Advanced Uninstall Log became an NSIS header, it was
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickindeed an amateur's attempt to write a flexible and errors free NSIS header.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickKichik dropped me a dozen of suggestions helping me to achieve my plan.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickHowever, his main suggestion to eliminate the mentioned above disadvantage,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickstill remains untouched by me.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickLicense
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickThis header file is provided 'as-is', without any express or implied warranty.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickIn no event will the author be held liable for any damages arising from the use
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickof this header file.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4NickPermission is granted to anyone to use this header file for any purpose,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nickincluding commercial applications, and to alter it and redistribute it freely,
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nicksubject to the following restrictions:
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick 1. The origin of this header file must not be misrepresented;
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick you must not claim that you wrote the original header file.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick If you use this header file in a product, an acknowledgment in
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick the product documentation would be appreciated but is not required.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick 2. Altered versions must be plainly marked as such, and must not be
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick misrepresented as being the original header file.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick 3. This notice may not be removed or altered from any distribution.
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
7765ee8964c8ffd7faee9baa0412abeb1ef5b0a4Nick
e65d9865568ed2bf36aca8b0cfcf21e278bc3650theadibeof