Ken,

IMO, the following happens. Your installer tries to replace "in-use" DLLs.
Because the files are "locked", Windows queues the files to be replaced at
the next restart/reboot.

BTW, Windows writes the original/target file information to this registry
key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session
Manager\PendingFileRenameOperations

In this key you can very easily see which files were "locked" during the
file installation process.

At the end of the installation, the setup.exe asks to reboot the server.
Windows (and not your installer) handles the file replacement in this case.

The recommended way in a server environment is to check (before the file
installation process takes place) if all files can be "written" (e.g. "Check
In-use file..." and/or "Check In-use Folder Tree..." functions). This can
help to avoid a reboot.

Friedrich