Msimsp.exe
The recommended method for generating a patch package is to use patch creation tools such as Msimsp.exe and Patchwiz.dll. The Msimsp.exe tool is only available in the Windows SDK Components for Windows Installer Developers.
Msimsp.exe is a executable file that calls Patchwiz.dll. The tool can be used to create a patch package by passing in the path to a patch creation properties file (.pcp file) and the path to the patch package that is being created. Msimsp.ex can also be used to create a log file and to specify a temporary folder in which the transforms, cabinets, and files that are used to create the patch package are saved.
The command-line syntax for Msimsp.exe is:
Msimsp.exe -s [path to .pcp file] -p [path to .msp file] {options}
The command-line options are not case-sensitive, and slash delimiters can be used instead of a dash. If no options are specified, Msimsp.exe displays the current values of the summary Information properties.
-
-s*[path to .pcp file]*
-
This is required and must be followed by the path to the patch creation properties file (.pcp extension). For more information, see PatchWiz.dll.
-
-ppath to .msp file
-
This is required and followed by the path to patch package that is being created (.msp extension).
-
-fpath to temporary folder
-
Optional. Followed by path to temporary folder. The default location is %TMP%\~pcw_tmp.tmp\.
-
-k
-
Optional. Fail if the temporary folder already exists.
-
-lpath to log file
-
Optional. Followed by the path to the log file that describes the patch creation process and errors. For more information, see Return Values for UiCreatePatchPackage.
-
-lppath to log file with performance data
-
Optional. Followed by the path to the log file that describes the patch creation process and errors. This option writes performance data to log file. This option requires version 4.0 of Patchwiz.dll.
-
-d
-
Optional. Displays a dialog if the patch creation completes successfully.
-
-?
-
Displays command-line help.
Note
Msimsp.exe can fail when it calls Makecab.exe if there are values in the File column of the File table of the installation package that differ only by case. Windows Installer is case-sensitive and allows an installation package such as in the table below only when Comp1 and Comp2 are installed into different directories. However, in this scenario you cannot use Msimsp.exe or Patchwiz.dll to generate a patch for the package, because Msimsp.exe and Patchwiz.dll call Makecab.exe, which is case-insensitive.
Avoid authoring an installation package such as the following partial File table.
File | Component_ | FileName |
---|---|---|
readme.txt | Comp1 | readme.txt |
ReadMe.txt | Comp2 | readme.txt |