Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
562 views
in Technique[技术] by (71.8m points)

windows - MSP vs. MSI packaging. Which to use for patches?

Currently I am working on a project which is deployed by using an MSI package. To patch the program, we just deploy another MSI installer package opposed to an MSP. Is this an effective/efficient way to go about this, or should we be deploying an MSP patch package instead? I have had experience with MSI but not MSP. How would I also go about creating an MSP patch? I trawled through the internet and cant seem to find anything.

Thanks in advance!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Patching is very complicated and difficult to work with, and quite unreliable if you don't follow proper MSI practices.

I use it only when I have to in order to achieve a fix that isn't possible to deliver in any other way. An example of this is if a product's uninstall sequence is broken so that the uninstall doesn't complete but goes into rollback. Then I patch with a minor upgrade to fix the error in the installed product, and then uninstall it. Most of the patches I have made this way was made with Wise Package Studio - and they worked well.

I also use patching to deliver very small fixes to released products. Typically just a single file or two with some urgent hotfixes. Any complex software release may urgently need such a patch a few weeks after main release as urgent issues are discovered in the wild and a quick fix is desired. This is to prevent large downloads for end users. And in these cases I always enable "include whole files" in order to prevent bit-level patching which is notoriously error prone.

Many people want to use patching to deliver small daily updates to QA-testers. Forget it. It is not worth the risk, certainly not the effort and saves practically no time whatsoever unless your testers are overseas. If you do need to patch for QA-testers, do not ever use bit-level patching as this will fail if they have messed around in the installation folder - which good QA-testers are likely to do.

If you need to make patches for a released product, do make sure to make good use of any available QA-testers, and have them run through patching on different platforms, upgrading from different versions, different languages, etc... It's very hard to get right. It is also adisable to not target too many prior releases with a patch since this tends to make things complicated quickly.

Overall: keep in mind that patching is designed for hotfixing. The linked article might be worth a read if you are researching the use of patching for your product. It is a bit messy, but describes several MSI patching obstacles.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...