I have DLLs that were installed with version 1.0.0 of my application. I enabled these Installation/Uninstallation Properties:

Register as Shared File
Register as OCX/DLL/EXE/TLB
Remove on Uninstall

I also have implemented Web Updates. My "Full Installer" installs some required drivers, installs VC++ Redistributable Package. My "Update Installer" doesn't include the larger files that are required to run my application that were installed in the "Full Installer" which is an effort to reduce download size & bandwidth usage from the web.

Now I want to release version 1.0.1 of my application (both Full and Update). This time around, I removed some of the aforementioned DLLs that aren't needed any longer.

What is the best way to remove those files completely?

My idea was: check if the file/DLL exists; if it does, "uninstall" the file. I'm assuming I would have to "undo" the installation properties manually in the script, for each file.

The idea I personally shot down was uninstall the application, then re-install the update--that would defeat the purpose of a small sized Update Installer.

My main objective is to have no files (my application requires) remaining on the machine or registry entries in the registry, after running the uninstaller that was installed with the Update Installer.