DLL got unregistered!!!

installanywhereExpert created the topic: DLL got unregistered!!!
I got issue while uninstallation of one application affected other application(dll’s got unregistered) and that application stopped working.I never used file/component isloation cause while techreview when I installed application it was not conflciting with any dll/ocx file present on machine.

But while cretaing MSI i make sure that files which going to windows/system for them attribute value it set to 8 & which goes to system32 it is 24.
So all components which install dll in system32 has this check of “always increment shared dll count”.

Still this issue has come up where uninstall of one application affected other.

I have read articles on msdn also which talks about isloation,menifest & using merge modules.

I am using wise standard edition so I don’t have saparate tool for isloation,what I am aware is if any dll/ocs which conflict in editor go to Installtion Expert -files-.file-details-assembly type-WIN32 & create menifest for same.
I have latest merge modules installed on my packaging VM which i downloaded from link given below & once capture is complete it prompts to check/select MergeModules & i do it.

Can you please suggest what I am missing in this process & how all this sort of issues can be taken care.Once I remove application is there any way to verify that no dll’s/files whcih are used by other application got affected?
And also what about those applications for which I created silent response file (.iss) & deployed as it is.I mean can they also cause issue while uninstall & if there is any probability of this coming how can I fix it?

applicationPackaging replied the topic: Re: DLL got unregistered!!!
Have you passed any advertised data related to your file through registries? If yes then try passing it through advertising tables.

Making a shared component should solve the purpose. Check out your registry table for the clue if you haven’t checked it already.

ISS files are created for installshiled exes and generally sharing is handled in installshiled vendor MSI packages but in case of exe you have to confirm, as it cant be guaranteed .

applicationPackaging replied the topic: Re: DLL got unregistered!!!
There are two mechanisms for reference counting.
The legacy method relies on incrementing a DLL count in the registry, as you have noted via the component attribute setting.
The windows installer method relies on recording a COMPONENT count rather than a DLL count. That is how merge modules work – they make sure that the component GUID(s) is/are consistent for each installation of the files and registry entries contained in the module.
Installing the same file to the same location from two different MSI files where the components do not have the same GUID means that each installation has a component count of 1, so uninstalling either of the MSI files will decrement component count to zero and result in the removal of the DLL.

HOWEVER – you describe your problem as the unregistration of a DLL but you do not indicate whether the DLL file is removed, or is still there. There are different possible causes for DLLs being unregistered but not actually removed. One cause is that your application registers the DLL via the registry table, so that on uninstallation, the registry entries are removed, thus unregistering the DLL.
Simply reference counting the DLL will not prevent the removal of the registry keys associated with the registration of the DLL. That is why the windows installer method of reference counting by component GUID rather than by DLL count is so much more reliable, as the components that are reference counted can include the components which install the registration keys for the DLL.