Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Removing DLLs


5 replies to this topic

spacer21

spacer21
  • Members
  • 19 posts

Posted 29 July 2004 - 07:58

hi,

i have 2 features in my setup say FeatureA and FeatureB. FeatureA contain some dlls which are also present in FeatureB (because they are necessary). FeatureB contains some more dlls.

the problem is that when i install FeatureA or FeatureB or both and then uninstall (completely) some dlls are not removed. and for my amazement those dlls were common in both features and uncommon dlls were removed.

i tried RemoveFile table but it didnt work. i removed reference of uncommon dlls from RemoveFile table but still they got removed.

all dlls are copied under a subfolder of System32.

where i m doing wrong? can anyone help me?

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 29 July 2004 - 08:18

Generally DLL's installed to the system folder should be set as "permanent" components (logo requirement stuff, not sure if it applies to sub folders).

Are your components set to shared? There should be a property called "Shared" with a yes or a no value. Check in the IDE. Also test on a different computer. It could be that there are incorrect reference counters in your registry because a test setup might have crashed at some point earlier.
Regards
-Stein Åsmul

spacer21

spacer21
  • Members
  • 19 posts

Posted 29 July 2004 - 11:50

hi,

thnx for replying.

i have set their permanent property to 'No' and shared to 'No'. i have also set com extract at build to 'No' (but it didnt work too). the setup (i think) works fine and its functionality is tested and it was ok. but this was an issue which was discovered in testing.

i dont know how it performs dual remove action on dlls. can u answer that one plz?

KathyMorey

KathyMorey
  • Full Members
  • 111 posts

Posted 29 July 2004 - 15:20

You say that some dlls are present in both features - how did you add them to the second feature? Did you use one component, adding it to multiple features? If so, then MSI should be tracking the features to which each component belongs and removing it when all of those are uninstalled.

Did you check the registry for HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDlls for the dlls in question to make sure that this key's count is correct? If no other applications could be using these dlls, then you should be able to remove this key.
Kathy Morey
Synergy Software Engineer
ProfitStars, a Jack Henry Company
kmorey@profitstars.com

spacer21

spacer21
  • Members
  • 19 posts

Posted 30 July 2004 - 07:33

hi,

no i have added them in separate components.

these dlls are only used by our company's product.

i checked the registry and found their those common dlls. they have the value 3. what does that mean? if i set it this to 0 then will they be removed?

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 30 July 2004 - 07:55

For Windows Installer to be able to reference count your files you must never add the same file to more than one component. That is each file should have a unique component GUID, and only one.

The correct procedure in your case would be to use a single component GUID for the file you want to add to multiple features.

Adding a component to multipe features may affect patching (may have been resolved by now), so you may want to create a top level feature where you add components that are shared between the other features.
Regards
-Stein Åsmul