Tim Peters wrote:
... customized installs, add auxiliary package installs such as MDAC or ship MSVC DLLs etc.
I have the impression that in these times (file system protection in win2000) it is even more complicated to get it right, or maybe even impossible to replace/update system dlls. I remember having looked (some time ago, win95 was current at that time) into the WISE supplied ODBC install script, IIRC it didn't really look so easy.
After the ancient Wise 5.0a installer PythonLabs still uses kept me up all night desperately trying to build a 2.2a1 Windows installer that worked, over the rest of that week I poked away at building an Inno installer for Python. The result is in CVS, under PCbuild/python.iss. It gets most of the job done, but not all.
I hit a brick wall with Inno when it came to distributing the MSVC runtime, and with writing to HKLM *or* HKCU (depending on the combo of whether the user needs admin privs to write to HKLM and whether the user *has* admin privs). Inno doesn't appear up to these tasks: it has no way to query whether the user is an admin, and no conditionals even if it did. You can tell Inno to *require* admin privs, but then the script stops with an error msg if the user doesn't have them. All MSVC runtime DLLs must be installed with Inno's "restartreplace" flag, and that requires admin privs on W2K boxes. See
for the full Inno story here.
I've just skimmed the Inno docs, but it seems that you can work around these issues by providing a custom little EXE which does all the tricks you want (according to the docs you just have to place it into the [Run] section).
You might even be able to place a call to vcredist.exe into that section (I just don't know how to stop the .exe from giving me the reboot box).