Let's say for example that I have to deploy a new version of an home made application every day. (It's not really that often, but let's use an extreme example.)

The appliation consist of 5 files and a few shortcuts creation that all change with each version.

I'd like the msi package to be able to uninstall any of the previous version before installing itself. There could be potentially 10s of old versions. What's the best way of doing this. Any specific details are welcome, since I'm quite new to packaging.

On a side note, I've been told that this would be alot easier to do in a script rather than with an msi package. But let's pretend that an msi package is the only way to go.

0 Comments   [ - ] Hide Comments


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.
Answer this question or Comment on this question for clarity


Read the topic "Patching and Upgrades" in the SDK help-file (msi.chm).
Either use a patch to update the files or use the Upgrade table to remove/uninstall previous version(s).

Search the forum as this has been discussed before.
Answered 05/10/2007 by: AngelD
Red Belt

Please log in to comment
Let me elaborate then on what I'm doing and what's not working.

I've chosen to go with the upgrade table. I was under the impression that if all packages had the same upgrade code, then I would be able to uninstall any previous version with the versionmin, versionmax value.

The problem seems to be that the new package will install correctly, then it will uninstall the previous versions (That's the part that I'm not really understanding). The end result is that all my new files with the same name as the old files get deleted and I'm left with only the new files that have a different name.

EDIT: Just found that it has probably something to do with the RemoveExistingProducts being at the end of the install sequence. Moving it up will probably fix this.
Answered 05/14/2007 by: qafyg
Senior Yellow Belt

Please log in to comment