[wix-users] Alternative to WiX Patch

Edwin Castro egcastr at gmail.com
Mon Nov 27 09:15:19 PST 2017

I should point out that the reason the modified file was not "rolled back"
is because of the component rules. The component for that file was
installed by 2 different products (your second MSI didn't actually do an
upgrade so you have two different products installed) so its reference
count is 2 before you uninstall the second MSI. When the second MSI is
uninstalled, the reference count goes down to 1 which ensures the file is
not removed but the newest version is what remains on the system as per the
component rules. Common files like these have very strict rules and must
always be backwards compatible so that all products sharing that file can
always use the newest version. The behavior you're seeing is correct
behavior resulting from the component rules.

Edwin G. Castro

On Mon, Nov 27, 2017 at 9:08 AM, Edwin Castro <egcastr at gmail.com> wrote:

> I think you're describing a patch here. You can't really deliver a patch
> as an MSI since you don't have a full product only a subset.
> I think the question you should be asking is what kind of upgrade do you
> want to employ to deliver the updated file and new file. In my opinion, you
> should always use major upgrades which should always be delivered as MSI.
> Minor upgrades can be used as long as the component rules are adhered to
> very strictly but it can be quite difficult to ensure the component rules
> are always followed. Rob has a bunch of old blogs on the component rules.
> http://robmensching.com/blog/posts/2003/10/18/component-rules-101/ is
> probably a good place to start. Minor upgrades can be delivered as MSI or
> MSP. I *think* the difference is that the MSI contains all product
> resources while the MSP contains just the "diff". Small updates are weird
> and more constrained than minor upgrades. I think they can only be
> delivered as MSP.
> --
> Edwin G. Castro
> On Mon, Nov 27, 2017 at 7:40 AM, Ven H via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>> I have an MSI, which adds a registry key, installs and starts some
>> services, installs a file and so on. Now, there is a requirement to update
>> one file and add a new file. I know we can create a Patch by creating a
>> difference / transform. But in my second MSI, I only want to include these
>> 2 files (the updated one and the new one) and not the other files,
>> probably
>> like a HotFix. I don't want to create a Patch. I did try to create a
>> separate MSI but with the same UpgradeCode but with a different Product ID
>> and a different version. But this creates a new entry in Programs and
>> Features. Also, while uninstalling this new MSI, it does rollback the new
>> file, but it doesn't rollback the modified file (this file was originally
>> created by the first MSI and modified by the second one). At least if it
>> is
>> able to rollback and restore the state during uninstallation, it would
>> have
>> been great. But it is not rolling back the modified file properly.Has
>> anyone come across this scenario? If so, have you been able to find a
>> solution without a Patch? Please help.
>> Regards,
>> Venkatesh
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant
>> http://www.firegiant.com/

More information about the wix-users mailing list