Reputation: 563
Our team has recently been considering pushing out a minor registry fix to users to modify one particular problematic key. Pretty straightforward stuff, just needed to update 1 key/value inside the registry.
So at the moment, we are using Wix to build .msi installers for the product. While looking into Wix's support for generating .msp patch files, it seems that the only way to create an .msp is a somewhat overcomplicated multi-step process to:
Now my question is, can't I simply describe the registry change into a Wix file and directly compile it into the .msp, without step 1 and 4 - which is a huge amount of effort for just a simple change?
Upvotes: 7
Views: 16697
Reputation: 21269
Yes, there is another way, even though you may consider it equally complicated:
msiexec /qn /a <msi-file> TARGETDIR=<absolute-path-of-existing-directory>
(if you run this from a make file or other script, use start /wait
in front of the command), say into %BASEDIR%
%UPDDIR%
%UPDDIR%
, make your changes to the .msi file that will be in the root of that folder ... you should also preferably change the version number ...
MsiFileHash
) or the File
table for files with version information..pcp
(Patch Creation Properties) file to point one row in the TargetImages
table to the .msi
in %BASEDIR%
and one row in UpgradedImages
to the .msi
in %UPDIR%
msimsp.exe <pcp-file> -p <absolute-path-to-desired-patch-file>
Voila, you're done.
Now whether this is worth it depends solely on you.
It's how I am doing it with the help of some scripts that run SQL queries on the MSI databases in order to query values or update them as needed. This works perfectly well and has been put into a GNU make file to build a whole bunch of MSIs, derived MSIs, patches and dummy patches (for testing).
The trick here is to patch the decompressed admin image and direct msimsp.exe
to create a patch between the unchanged and the changed version of the decompressed admin image. All in all fits your requirement of doing it "by hand".
Write a comment in case something needs clarification.
Upvotes: 3
Reputation: 28100
It is possible to create MSPs (patches) and MSTs (transforms) using Orca and the other tools from the Windows Install SDK (which is now part of the Windows SDK). However, the process may not be much easier than what you already have with WiX.
Here is the best explanation I could find with a few minutes of Googling; I still suspect there must be something better out there, though. But if you're familiar with the Windows Installer format, it's pretty easy to explore and try a few things with Orca until you have the hang of it.
Upvotes: 2
Reputation: 1182
No. A patch is the delta of two installable images. To generate the delta, even if the difference is very small, you will need both images.
Upvotes: 7