{"id":343,"date":"2012-02-21T11:15:31","date_gmt":"2012-02-21T11:15:31","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/heaths\/2012\/02\/21\/introducing-sticky-patching-and-add-ons\/"},"modified":"2019-02-17T15:29:36","modified_gmt":"2019-02-17T22:29:36","slug":"introducing-sticky-patching-and-add-ons","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/setup\/introducing-sticky-patching-and-add-ons\/","title":{"rendered":"Introducing Sticky Patching and Add-ons"},"content":{"rendered":"<p>Late last week I checked in a feature for Windows Installer XML&rsquo;s (WiX) chainer, <i>Burn<\/i>, that I&rsquo;m really excited about (ask my colleagues): sticky patching.<\/p>\n<p>This is a feature at the bundle (what we call our composition of packages for <i>Burn<\/i>) level that supports related bundles of type &ldquo;Patch&rdquo; and &ldquo;Addon&rdquo;. Whenever you install a new bundle, if there are any of those related bundles already on the machine, they are automatically re-installed (efficiently) at the end of the chain (the sequence of packages in the bundle).<\/p>\n<p>&ldquo;Patch&rdquo; and &ldquo;Addon&rdquo; related bundles will be called as if they were being installed. By default <i>Burn<\/i> will not re-installed any packages that are already present, though the bootstrapper application (BA) can override that. Since conditions are reevaluated this also presents a great opportunity to support add-ons with conditional feature packages.<\/p>\n<p>This is complimentary to the functionality we have in place for related bundles already during repair and uninstall actions. &ldquo;Patch&rdquo; and &ldquo;Addon&rdquo; related bundles are already repair and uninstalled when you repair or uninstall their target bundles &ndash; and once I&rsquo;ve finished integrating <a href=\"http:\/\/bit.ly\/xYTj5F\">package ref-counting<\/a>, those related bundles will not be installed until the last target bundle is uninstalled.<\/p>\n<p>I wrote a battery of tests for this feature, but &ndash; as always &ndash; please <a href=\"http:\/\/wixtoolset.org\/bugs\">file any bugs<\/a>.<\/p>\n<p>I&rsquo;ll go into more details about how this feature works and how you can take advantage of it in future posts.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Late last week I checked in a feature for Windows Installer XML&rsquo;s (WiX) chainer, Burn, that I&rsquo;m really excited about (ask my colleagues): sticky patching. This is a feature at the bundle (what we call our composition of packages for Burn) level that supports related bundles of type &ldquo;Patch&rdquo; and &ldquo;Addon&rdquo;. Whenever you install a [&hellip;]<\/p>\n","protected":false},"author":389,"featured_media":3843,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[64],"class_list":["post-343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-wix"],"acf":[],"blog_post_summary":"<p>Late last week I checked in a feature for Windows Installer XML&rsquo;s (WiX) chainer, Burn, that I&rsquo;m really excited about (ask my colleagues): sticky patching. This is a feature at the bundle (what we call our composition of packages for Burn) level that supports related bundles of type &ldquo;Patch&rdquo; and &ldquo;Addon&rdquo;. Whenever you install a [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/users\/389"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/comments?post=343"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media\/3843"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media?parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/categories?post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/tags?post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}