Merging a module that leaves files during deletion

We have Visual Studio 2008 Installation and Deployment, an installer that installs minimal files and does some custom action. We also have several merge module projects that the setup project deploys. Each merge module has an updatable module folder with unique subfolders that have different components installed.

The problem we are facing is that during the uninstallation of the install project, the files deployed in the install project are completely removed from the hard drive; but the files deployed by the merge modules are not deleted at all .

In addition, if files that were deployed using the merge module still exist on the hard disk after deleting, then installing the setup project again does not overwrite the files deployed using the merge module.

We have acceptable results:

1) Make Merge Module deployed files removed during uninstall 2) Allow files deployed by Merge Module to be overwritten during fresh install

Any thoughts would be appreciated!

+2


source to share


2 answers


This may not be the answer you were hoping for, but this is a thought that might help you ...

Question: Should you actually use the merge modules? The idea behind MSM is great, but in practice they don't work as well as you might wish.



MSI , () , () ( ), (c) ( ) .. Microsoft, MSMS, MSI , .

Or have you created / ves merge modules yourself for this application? In this case, they will be better than the Components in your MSI, as they will follow the same installation and removal process as the rest. And if you have multiple apps that use the same components, you can give them the same component IDs and they end up being separated (for example, when you have 2 apps with a common component installed and you uninstall one of them, shared components will remain as long as the other application remains installed.)

+1


source


I have faced a similar problem in the past, namely due to problematic entries in the registry key [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]

. See if there are any files in your merge module after deletion, the link count may be off and therefore Windows Installer thinks the files should remain because they are in use by another application.



Typically, this is due to a change in the state of the Collaborative component between build installations, or by using MSIZAP (such as Windows Installer Cleanup) that does not correct recalculations when the package is cleaned.

+1


source







All Articles