I developed c# windows application and included a windows installer, after building the project , i am having a msi file. All the clients will install it to execute our product. We added a new dll and we give it to client through auto update. Now the dll will be copied to the client system and the application works fine. When we uninstall the msi, the new dll is not getting deleted, because it is not registered in the registry and there is no link between the dll and the installer. So how can we delete the dll from the client system, when an uninstall is done.
Can any one help me to proceed..:(

If the update was also an MSI it should have removed it as part of the uninstall, or if you put it in the windows/system32 area it should have come up with "probably not in use by anything else do you want to remove it"

The update is made from a server to client system. In the client system the new dll is copied to the Product installed dirctory "C:\Program file\InstallProduct\..". If i uninstall InstallProduct the new dll want to be deleted from the directory

If you just download a file and plonk it in a directory nothing is going to be aware of that. You would need to do more work as part of the updater to make anything aware of the update. If its already too late and you have your app out and deployed, you'll need to have a new update that goes out to update it with a way of knowing that additional files are logged somewhere and to remove them before removing your app.

Add a custom action for uninstall.
You will need a code file for it that inherits from Installer. When you add this to the installer, it will be part of the package, but you can override uninstall to delete the directory.

This article has been dead for over six months. Start a new discussion instead.