Different MSIs updating the same registry key value
Hey guys...
If there are two MSIs that update/create the same registry value and both were installed. What happens when you uninstall one (and the MSI is set to remove the key value on uninstall)? Does it cancel the deletion since the other MSI is still installed?
If there are two MSIs that update/create the same registry value and both were installed. What happens when you uninstall one (and the MSI is set to remove the key value on uninstall)? Does it cancel the deletion since the other MSI is still installed?
0 Comments
[ + ] Show comments
Answers (8)
Please log in to answer
Posted by:
jmcfadyen
15 years ago
this is all dependant on the component codes of the offending components.
where the two apps are like this
app A = component code A
app B = component code B
then removal of either application will break (remove) the component noted.
if you are in a situation where you would like to keep the key on the machine if one application is installed you need to match the component codes for each component on both applications
an example like this would suffice
app A = component code X
app B = component code X
more detail on this here
http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!136.entry
note if you have a different value for your registry key in both packages you may find the values do not update during installation of the 2nd package.
something to keep an eye out for
where the two apps are like this
app A = component code A
app B = component code B
then removal of either application will break (remove) the component noted.
if you are in a situation where you would like to keep the key on the machine if one application is installed you need to match the component codes for each component on both applications
an example like this would suffice
app A = component code X
app B = component code X
more detail on this here
http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!136.entry
note if you have a different value for your registry key in both packages you may find the values do not update during installation of the 2nd package.
something to keep an eye out for
Posted by:
michaelnowell
15 years ago
I suspect that when you uninstall one of the applications, that it will quite simply remove the reg key.
You could work around this (in both msi's) by either setting the components that the registry keys are in to remain upon uninstall (I wouldn't really recommend that) or to set the registry key in question as a keypath and launch your app with an advertised shortcut (which will then detect that the key doesn't exist and repair the app).
You could work around this (in both msi's) by either setting the components that the registry keys are in to remain upon uninstall (I wouldn't really recommend that) or to set the registry key in question as a keypath and launch your app with an advertised shortcut (which will then detect that the key doesn't exist and repair the app).
Posted by:
aogilmor
15 years ago
I believe Michael is correct except that I'm pretty sure you don't really need an advertised shortcut if the registry value is a keypath of the component in the 2nd app. If worse comes to worst and removal of one app breaks the 2nd app you could always do a manual repair.
do some testing and determine what effect removal has. If it doesn't break the 2nd app or if the 2nd app self heals, no worries.
do some testing and determine what effect removal has. If it doesn't break the 2nd app or if the 2nd app self heals, no worries.
Posted by:
anonymous_9363
15 years ago
Posted by:
jayteeo
15 years ago
ORIGINAL: jmcfadyen
this is all dependant on the component codes of the offending components.
where the two apps are like this
app A = component code A
app B = component code B
then removal of either application will break (remove) the component noted.
if you are in a situation where you would like to keep the key on the machine if one application is installed you need to match the component codes for each component on both applications
an example like this would suffice
app A = component code X
app B = component code X
more detail on this here
http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!136.entry
note if you have a different value for your registry key in both packages you may find the values do not update during installation of the 2nd package.
something to keep an eye out for
Someone on my team had created a second MSI which updates a registry component that is also in another MSI rather than creating a transform for the original (long story). To my surprise, we saw rather different results than what you had described. The registry component was actually updated after MSI B ran (obviously after MSI A had been installed). An uninstall of MSI A was performed and we found that the registry component had remained in tact. I'll have to look at MSI A to see if the registry component is designed to remain on the machine on uninstall.
Posted by:
jmcfadyen
15 years ago
components can be marked to overwrite if a keypath exists or not to overwrite
so depends on component attributes in the SDK for more details.
you may also find some people remove keys during installation to ensure that successive components get written. quite a can of worms as to how this works hence i didn't bother going into too much detail
so depends on component attributes in the SDK for more details.
you may also find some people remove keys during installation to ensure that successive components get written. quite a can of worms as to how this works hence i didn't bother going into too much detail
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.