> --- Comment #1 from Rainer Meier <r.meier at wpkg.org> > 2009-09-21 19:34:55 --- > Hi Stefan > > Sounds like a reasonable request. At the beginning I thought > "yes, of course, > let's quickly do it". Unfortunately it became a bit more > complex. Especially > this requires on every revision number query to set the full package > environment and restore it after evaluating it. > To prevent this for packages where it is not needed (I think > using environment > variables in revision strings will not become very popular) > I've added a quick > check and variables will be expanded only if at least two "%" > characters are > found. > Hi Rainer, as an example, see Notepad++, which includes the version number in the installer file name. This leads to changing the version number in up to four places, depending on your package definition. I do not only check for the uninstall entry, but for the correct main executable version too. I do support x86 and AMD64 platforms, so I need to change this in four places, twice for the file check and once each for the install and upgrade command. So I can now use the following package definition: >> <package id="NotepadPlusPlus" name="Notepad++" revision="5.5.0.0" reboot="false" priority="30"> <variable name="JH_NPP_VER" value="5.5" /> <check type="uninstall" condition="exists" path="Notepad++" /> <check type='logical' condition='or'> <check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\Notepad++\notepad++.exe" value="%JH_NPP_VER%" /> <check type="file" condition="versiongreaterorequal" path="%ProgramFiles(x86)%\Notepad++\notepad++.exe" value="%JH_NPP_VER%" /> </check> <!-- remove plug-in's to prevent installer hanging --> <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" del /f /q "%ProgramFiles%\Notepad++\plugins\*.dll"' /> <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\*.dll"' /> <install cmd="%SOFTWARE%\NT-Install\Notepad++\npp.%JH_NPP_VER%.Installer.exe /S" /> <!-- remove plug-in's to prevent installer hanging --> <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" del /f /q "%ProgramFiles%\Notepad++\plugins\*.dll"' /> <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\*.dll"' /> <upgrade cmd="%SOFTWARE%\NT-Install\Notepad++\npp.%JH_NPP_VER%.Installer.exe /S" /> <!-- Windows 32-bit --> <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" del /f /q "%ProgramFiles%\Notepad++\plugins\*.dll"' /> <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\uninstall.exe" "%ProgramFiles%\Notepad++\uninstall.exe" /S' /> <!-- Windows 64-bit --> <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\*.dll"' /> <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\uninstall.exe" "%ProgramFiles(x86)%\Notepad++\uninstall.exe" /S' /> </package><< Thanks for the additional check, if expansion is needed, Stefan |