windows installer - WiX: MSI causing double entry in Programs and Features after major upgrade, also not uninstalling -


i have project lot of msis (installed bootstrapper). recently, after major upgrade, noticed previous version wasn't being uninstalled in programs , features (win 7). is, after upgrading version 1 version 2, both version 1 and version 2 in programs , features.

this common problem, it's problem lot of different shades of grey -- have uncommon shade of problem.

the problem may lie in specific msi. this msi can run during initial install. therefore never change version number. here looks (to show it's legit major upgrade):

    <product id="*"          name="msi"          language="1033"          version="1.0.0.0"          manufacturer="bob"          upgradecode="guid-here">     <package installerversion="200"              compressed="yes"              installscope="permachine" />      <majorupgrade downgradeerrormessage="a newer version of [productname] installed." />     <mediatemplate embedcab="yes"/>     <featureref id="referencetofeature"/> </product> 

here's why think msi that's causing problem: when run major upgrade, have version 1 , version 2 in programs , features. when run uninstaller verbose log, can see uninstalls of msis, in boostrapper uninstall log file, separate uninstall log files rest of msis.

if @ log file msi, noticed problem. here's part of log file think may problem:

                             ... property change:  adding installlevel property.  it's value '1'. disallowing uninstallation of component: {guid-here} since client exists disallowing uninstallation of component: {guid-here} since client exists                              ... 

i recognize guids. guids components in msi. know means program using resource -- that's why won't uninstall -- life of me can't think of program be! i'm installing on clean virtual machine, , program installer installs isn't running when uninstall!

some more info makes me think msi causing programs , features doubling-up: after uninstall version 2, i'm left, of course, version 1. when uninstall version 1 verbose logging, log msi pops msi in question! no other msis uninstalled during uninstallation.

i've tried adding attribute allowsameversionupgrade="yes" element msi -- this

<majorupgrade allowsameversionupgrade="yes"                downgradeerrormessage="a newer version of [productname] installed." /> 

-- , breaks installer, because makes msi install during update installation, want msi install during initial installation. doesn't fix problem, in both version still show in programs , features.

however, cause msi uninstalled first time through. is, before, when didn't put in allowsameversionupgrade="yes" attribute, msi wouldn't uninstall during version 2 uninstallation, , when uninstalled version 1 log file uninstalling it. when add attribute, still doubled versions in programs , features, except time can uninstall msi during first uninstallation, , then, during second uninstallation (the version shouldn't there in first place), don't any msi log files -- bootstrapper log file.

can shed light on problem?


ok! managed recreate problem in toy program, so, hopefully, solving problem should much simpler!

mr. asmul, appreciate interest. however, solved problem. made very, dumb mistake i'm far embarrassed admit. safe i've been chasing own tail 2 days , costing employers money because... well, dropped on head baby, , result i'm none bright.

your problem indeed common, @ least on face of it, don't quite understand whole problem scenario. when have 2 versions of same msi in add/remove programs major upgrade has failed. when uninstall 1 of versions, log file entry indicate:

disallowing uninstallation of component: {guid-here} since client exists

essentially each msi component installed twice ref-count of 2 because 2 versions of same msi installed. uninstalling both msi setup versions should correctly remove components in question (because ref-count goes down 0 components).

"this msi can run during initial install" - mean exactly? have read again, , afraid things not clear me.

these other msi files, suite - they, install, install same or different locations? why separate msi files if install together?

please prefer update question rather adding many comments.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -