4
votes

Is there any way to create minor upgrade (patch file i.e. .msp) or msi based on the old MSI installer and new MSi installer. we want to give the customer to minor upgraded patch (.msp or .msi0, which contains the changes only.
1) I have created (old) Test.msi, based on the 4 .wxs files. these 4 wxs files helps the installation wizard steps. Below are example.

Welcome.wxs file: where we mentioned just welcome message with reference of our project image Main.wxs file: which contains the actual script of wxs sourcse file for the compononets and features. InstallerPath.wxs: Where user can select his installation path

LicenseAgrement.wxs: license aggrement mentione dialog file.

2) I have changed the Product verison number only and modified few of my project files, and added few new files.
3) Then I have created (new) Test.msi, based on those 4 .wxs files.
4) By using these old and new installers, how can I genreate patch (.msp or .msi) for minor upgrade.

2

2 Answers

3
votes

If you want to do this the two MSIs then this is a starting point:

http://wixtoolset.org/documentation/manual/v3/patching/patch_building.html

Then there's WiX patching:

http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html

Or as a variation on the first one, you could create your own .PCP file and run msimsp from the Windows kit as described here:

https://msdn.microsoft.com/en-us/library/aa367816(v=vs.85).aspx

1
votes

Just to provide one more link, as an additional information to the last link, PhilDW gave already: Useful, if you want to call the patch generation by an own app/framework for patching. Then you could target the PatchWiz.dll from MS directly without using msimsp.

https://msdn.microsoft.com/en-us/library/aa370590%28v=vs.85%29.aspx

But MsiMsp is a simpler first entry of course. Basically it's just a shell for this dll.

But: Creating .pcp Files is not everybody's favor... reserved for people who want to go deeper here. But IF you want it, it is probably safer of doing it with code than manually, once you have understood all the points.