Null/empty component guid components are only installed in major upgrades. 
Patches are not typical major upgrades and those components are ignored (just 
as with all other maintenance transactions).


As it says: it cannot be removed or repaired. A patch is basically always “a 
repair” (after the view is upgraded by applying the patch).






Blair





From: Mita Patel
Sent: ‎Tuesday‎, ‎January‎ ‎14‎, ‎2014 ‎1‎:‎59‎ ‎PM
To: General discussion for Windows Installer XML toolset.





Re: Deleting files in a patch.
Applying the same logic to a patch does not work.   
We set the component id for new files that do not need to be registered to 
null.   (to allow for  deletion in future patches)
Then apply the patch.  Resulting in the null component id files not getting 
installed.

Message: 6
Date: Tue, 14 Jan 2014 11:29:15 -0800
From: Phil Wilson <phildgwil...@gmail.com>
Subject: Re: [WiX-users] Deleting files in a patch...
To: "General discussion for Windows Installer XML toolset."
        <wix-users@lists.sourceforge.net>
Message-ID:
        <CACZvpRZkcKk5z_XAk8ZdRchhJpcmwo1OH5+4AS5AuohBtXz=x...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

It looks like you hijacked an existing discussion thread, so I'll start a new 
one. ...

Yes, that's the way it works. That might not be the best way to remove files if 
you decide you want them back later. An alternative is to make the component 
transitive and use a property to make the actual file be present or absent, so 
if you later decide you want the file present just set the property value. It 
can be tricky to make that work in all cases, such as adding/removing features, 
repair, patches etc because you need to preserve the property value that is 
keeping the file present or absent.

"The msdn doc says the following for component id in the column table.
ComponentId --> If this column is null the installer does not register the 
component and the component cannot be removed or repaired by the installer.
This might be intentionally done if the component is only needed during the 
installation, such as a custom action that cleans up temporary files or removes 
an old product. It may also be useful when copying data files to a user's 
computer that do not need to be registered.

Does this mean in the full msi, components with null id will not be registered 
and if deleted then will  not put the msi in repair?  Which further indicates 
that at  patch time we can call a custom action to delete these components , 
and this will not throw the msi in repair mode?"

Phil Wilson
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to