Got an app that leaves behind ARP entries so tried useing RemoveRegistry table to get rid of HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guid} on removal. There's also a sticky services key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services that doesn't go away on removal. Both of these stick around even though I created a standalone component for removing this crap in the MST. About ready to chuck it and use a CA. WTF? that sux. Why can't I use the standard tables? This is what they're supposed to do.

There are not many examples out there of actually using this table/action. Any help appreciated!
TIA, Owen
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

1
I could be wrong here, but I believe the RemoveRegistry table should only be used to remove keys when installing.

details about the RemoveRegistryValues Action are here:

http://msdn.microsoft.com/en-us/library/aa371207(VS.85).aspx

At the end of the first paragraph is this statement:

This action removes a registry value that has been authored into the RemoveRegistry table if the associated component is set to be installed locally or as run from source.
Answered 09/02/2009 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
RemoveRegistry executes only during installation only.
You can add "-" registry value to your hive which takes care of deleting its subkeys during uninstallation.

Jeeoo!
Santro
Answered 09/02/2009 by: zipsantro
Purple Belt

Please log in to comment
0
I hope you would have also checked for Component attributes and whether the service is just marked for deletion and not deleted.

Added to Santro, "*" would also help you to remove the entire hive.
Answered 09/02/2009 by: slb
Purple Belt

Please log in to comment
3
Owen, for uninstalling, only keys and values which were installed originally will be removed by entries in the RemoveRegistry table. If they're not present in the original, one way around would be to create a pre-requisite (or would that be "post-requisite?!?) MSI which "installs" a bunch of RemoveRegistry entries :)
Answered 09/02/2009 by: VBScab
Red Belt

Please log in to comment
0
ORIGINAL: VBScab

Owen, for uninstalling, only keys and values which were installed originally will be removed by entries in the RemoveRegistry table. If they're not present in the original, one way around would be to create a pre-requisite (or would that be "post-requisite?!?) MSI which "installs" a bunch of RemoveRegistry entries :)


Thanks Ian, I am thinking you and Timmsie are right and I have to use a deferred CA at the end.
Answered 09/02/2009 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity