cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Gvarma
Level 7

Patch vs Transforms

Hi All,

I am confused in terms of the differences between patch and a transform...

I understand a transform file (mst) is a difference between your source and target MSI and also it allows you to customize your final MSI package but doesnt the patch work the same way , isnt the patch essentially contians the differences of previous and current installer?

any inputs are highly appreciated!!!

TIA
Labels (1)
0 Kudos
(3) Replies
klacounte
Level 6

Here's how I think of them. Transforms are applied at install time - patches are (almost always) applied after the initial installation. Transforms can also be embedded in the .msi but patches can't. Also it's possible to create a patch that can be uninstalled but a transform can't without uninstalling the entire product.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

It might be useful to refer to Heath Stewart's blog for more information - I know he talks about patching issues a lot, although I can't remember much about the distinctions between patches and transforms.

From an implementation perspective, a patch is implemented through transforms - any patch is a combination of metadata and a transform for every previous version it can target, plus any new file data (which transforms can only include externally). Furthermore, as klacounte says, (raw) transforms can generally only be used at install time, and become inextricably part of the installed product; the exception to both is as the implementation of a patch, where they can be installed and possibly removed at a later time.
0 Kudos
Not applicable

I believe the MSDN article on patches (http://msdn2.microsoft.com/en-us/library/aa370578.aspx) describes it pretty well:

A Windows Installer patch (.msp file) is a self-contained package that contains the updates to the application and describes which versions of the application can receive the patch. Patches contain at a minimum, two database transforms and can contain patch files that are stored in the cabinet file stream of the patch package.


Or to put it more simply:

Path = Transform + Cab Files + Metadata/Validation

Transforms play a huge role in the application of patches though.
0 Kudos