{"id":1366,"date":"2017-12-04T07:48:21","date_gmt":"2017-12-04T07:48:21","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=1366"},"modified":"2020-01-09T09:37:04","modified_gmt":"2020-01-09T09:37:04","slug":"implements-nested-msi-based-on-featutre-selection","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/implements-nested-msi-based-on-featutre-selection\/","title":{"rendered":"Implements Nested MSI Based on Featutre Selection"},"content":{"rendered":"<p><strong>applicationPackaging created the topic: Implements Nested MSI Based on Featutre Selection<\/strong><br \/>\nPurpose<br \/>\nUse Patch Creation to create a Windows Installer patch file (.MSP) that updates installed versions of a Windows Installer-based application. A patch file can update one or several previous versions. Unlike full installations, a patch installation contains only the information necessary to update an installed version of the application.<br \/>\n________________________________________<br \/>\nNote<br \/>\nIf this tool is disabled, it means you do not have a license to use it. With Enterprise Management Server, it might also mean you do not have permission to use it.<br \/>\n________________________________________<br \/>\nBefore You Begin Read about what you need to create a patch in the online help.<br \/>\nHow to Use<br \/>\n1.  Double-click the Patch Creation icon.<br \/>\nThe Welcome dialog appears, listing the basic steps for creating a patch file. The wizard guides you through each step.<br \/>\n2.  Click Next.<br \/>\nThe Specify Patch Settings File dialog appears.<br \/>\n3.  Mark one of the following:<br \/>\n? Create a new patch file<br \/>\nThis creates a new patch settings file (.PCP).<br \/>\n? Open an existing patch settings file (.PCP file)<br \/>\nIf you mark this, also specify the .PCP file.<br \/>\n4.  Click Next.<br \/>\nThe Specify Previous Versions dialog appears, where you select .MSI files of previous versions that this patch will update, referred to as targets. When this patch is run on a destination computer, it verifies that a valid target exists before installation. You must add at least one previous version to this list.<br \/>\n5.  To add a previous version, click Add, complete the Previous Version Details dialog, and click OK.<br \/>\n6.  If you are prompted to run an administrative installation, click Yes.<br \/>\nThe administrative installation is performed. After it finishes, the Specify Previous Versions dialog appears again.<br \/>\n7.  Repeat the steps above to add additional previous versions.<br \/>\n8.  When you finish, click Next on the Specify Previous Versions dialog.<br \/>\nThe Specify Upgrade Version dialog appears.<br \/>\n9.  Complete the dialog:<br \/>\n? Upgrade MSI path<br \/>\nThe earlier versions of the application will be upgraded to the version you specify here. By default, the path to the current installation&#8217;s .MSI appears.<br \/>\n? Advanced<br \/>\nClick this to enter advanced settings. The Advanced Upgrade Version Details dialog appears. Complete the dialog and click OK.<br \/>\n? Add a Digital Signature to the Patch<br \/>\n(Windows Installer 3.0 or later.) Mark this to digitally sign the patch.<br \/>\n10.  Click Next on the Specify Upgrade Version dialog.<br \/>\n11.  If you are prompted to run an administrative installation again, click Yes. If you are prompted to update the package code, click Yes.<br \/>\nIf you marked the option to add a digital signature, the Specify Digital Signature Settings dialog appears. A warning message appears if the original installation was not signed.<br \/>\n12.  To add a digital signature to the patch, complete the Specify Digital Signature Settings dialog and click Next.<br \/>\n13.  If you are prompted to run an administrative installation again, click Yes. If you are prompted to update the package code, click Yes.<br \/>\nIf Windows Installer 3.0 or later is installed on your computer, the Patch Sequencing dialog appears. Complete the dialog and click OK. Otherwise, the Compile Patch dialog appears.<br \/>\n14.  Complete the Compile Patch dialog:<br \/>\n? Output .MSP file<br \/>\nSpecify a full path for the patch file that you distribute to end users.<br \/>\n? Advanced Settings<br \/>\nClick Advanced to display the Advanced Patch Settings dialog. Complete the dialog and click OK.<br \/>\n? Patch Removal<br \/>\nTo make this patch removable through Add\/Remove Programs, click Allow Removal and complete the Patch Removal Settings dialog.<br \/>\n? Multi-patch Media Settings<br \/>\nDuring patch creation, entries are made in the Media table of the patch installation. Options in this section populate the Media table. For each subsequent patch, the file sequence start number and the disk ID start number must be higher than the one in the previous .MSI or patch file. To enter these numbers accurately, you must have access to the most recent patch file distributed to end users. Click Browse to specify the patch file; the file sequence and disk ID numbers are read from the patch.<br \/>\n15.  Click Next to begin the patch creation process.<br \/>\nDuring patch creation, you might see a message stating that the versions between the target image (previous version) and upgrade image (new version) do not match. This is normal; click Yes if this message appears.<br \/>\nThe Compile Patch dialog notifies you when patch creation is completed.<br \/>\n16.  Click View Log to view a log file of all actions performed to create the patch.<br \/>\nIf the patch file could not be created, use this log file to determine the source of the error.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>applicationPackaging created the topic: Implements Nested MSI Based on Featutre Selection Purpose Use Patch Creation to create a Windows Installer patch file (.MSP) that updates installed versions of a Windows&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[49],"tags":[232],"class_list":["post-1366","post","type-post","status-publish","format-standard","hentry","category-general","tag-msi"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=1366"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1366\/revisions"}],"predecessor-version":[{"id":1367,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1366\/revisions\/1367"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=1366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=1366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=1366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}