
A has the following dlls:
1.dll
2.dll (version 1.0) - needs 1.dll to work
3.dll (version 1.0)
B has the following dlls:
1A.dll (same functionality as 1.dll, newer version, new name (so new compID))
2.dll (version 1.1) - needs 1A.dll to work
3.dll (version 1.1)
When you install both on the same system, everything works ok:
1.dll is still there (if anything else in A needs it)
1A.dll is there
2.dll is now version 1.1
3.dll is now version 1.1
The problem comes when the user chooses to uninstall B from Add/Remove programs. THEN on the system you've got:
1.dll
2.dll (version 1.1)
3.dll (version 1.1)
So 2.dll is no longer working since 1A.dll isn't on the system.
Each of the following have a unique Component ID:
1.dll
1A.dll
2.dll
3.dll
I understand why it's happenning, but other than marking the component for 1A.dll as perm. and always leaving it on the system, is there a way to have it uninstall only after the other product is uninstalled? (or certain components?)