Install new or Upgrade in "one component"

Feb 10, 2011 at 3:00 PM

does anyone know a good way how to implement implicit MSI minor upgrade with dotnetinstaller.

This means. e.g. when installing product V 1.0.1 and no product is installed, msiexec /i .. must be executed. If product 1.0.0 is allready there then msiexec /fvomus [path to updated .msi file] or msiexec /I [path to updated .msi file] REINSTALL=ALL REINSTALLMODE=vomu must be executed. Is there any "native support" for this in dotNetInstaller? Would this be a good feature request?

Feb 12, 2011 at 2:19 PM

There's no built-in feature. It would be a good feature if anyone actually did minor upgrade ;) Most people just don't. I would stay away from minor upgrade in general, it has always messed my installers up. But it's FUD of course, don't take what I say for granted ;)

Feb 15, 2011 at 1:27 PM

You can create 2 components: one with msiesec /i  and one with msiexec /vomus and having different conditions so it will never be both enabled.


Feb 15, 2011 at 2:40 PM

hello alfa64,

this sound reasonable and seems lika a possible workaround. I can only not think of conditions/installation checks .
May be it is just a hitch in my head but the way dni installer "installed checks" are done, they define when to not install a product, but not when to install?
I can define to use msiexec /i cmdline with "nothing to do condition" of "productcode allready there", but how to say the cmdline "msiexec /vomus" component to only run if a version smaller than actual version is present?

Any ideas are welcome. It seems this is the right track when using "build in" behaviour.

Anyway, is there the possiblity to show just the one component that will actually be installed then? otherwise the user would see e.g. "V1.1 Full Product Installed", "V1.1 Upgrade" not installed. This is confusing.