An early sequencing of the upgrade (such as after InstallIntialize) is
more or less the same as uninstalling the old product then installing
the new one. Guids don't really matter much.

After InstallExecute isn't like that. As an example: say every file
has a guid and a version or hash. The guid is reference counted up at
install time. Installing the new product after InstallExecute means
installing new files over old files following file replacement rules
(versions, hashes etc) and incrementing the ref count for the guids
being installed (which matters only for files in the same location).
Then uninstall the old product, counting down its guid ref counts. If
all the files are the same and have matching guids then they all ref
count down to one and the files stay behind. If you don't follow
component rules then you install different guids even though they have
the same file name. When the old product is uninstalled those guids
count down to zero and the files are removed even though you just
installed them. Sometimes it helps to think of it all as installing
ref counted guids, not files, registry entries etc.  This may be what
you're seeing.

So in this case there is no "newer installation", there are only file
replacement rules, and guids that are no longer in use being deleted,
so the same guids must be used for the same files for this type of
upgrade to be successful.  The same is true of patches, minor
upgrades.
---------------
Phil Wilson


On Thu, Mar 26, 2015 at 7:47 AM, Hoover, Jacob
<jacob.hoo...@greenheck.com> wrote:
> Sounds like you broke component rules somewhere...  Are your component ID's 
> identical for the same files across MSI's?  Are you using  version info on 
> the files in question, or is it falling back to timestamp and hash checking?
>
> -----Original Message-----
> From: Tobias Markmann [mailto:tmarkm...@googlemail.com]
> Sent: Thursday, March 26, 2015 7:08 AM
> To: General discussion about the WiX toolset.
> Subject: Re: [WiX-users] Keep Desktop Shortcuts and Pinned Task Bar Icons 
> with Upgrades
>
> Hi Rob,
>
> On Thu, Mar 26, 2015 at 12:27 AM, Rob Mensching <r...@firegiant.com> wrote:
>
>> Schedule your upgrade late and carefully adhere to the Component Rules.
>>
>
> Thanks for the hint. I googled a bit and read up things on MajorUpgrade 
> scheduling [0] and Component Rules, including [1] and [2].
>
> So I've tried scheduling the upgrade later. Specifically I've added 
> Schedule="afterInstallExecute" to the MajorUpgrade, see [4].
>
> Now it seems to first overwrite the existing installation and then runs the 
> uninstall process. The shortcut and pinned task bar icons are retained.
> However the uninstall progress removes the overwritten files so that the 
> shortcut points to a broken installation.
>
> Why does it remove the now newer version installation files during uninstall?
> I expected MSI to know that the files in the program folder are of a newer 
> installation when it starts the uninstall process and only deletes files 
> which haven't been replaced during installation.
>
> Thanks in advance for any pointers and hints.
>
> Cheers,
> Tobias
>
> [0]
> http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html
> [1]
> http://robmensching.com/blog/posts/2003/10/4/windows-installer-components-introduction/
> [2] http://robmensching.com/blog/posts/2003/10/18/component-rules-101/
> [3]
> https://dl.dropboxusercontent.com/u/14672346/tmp/swift/swift_wix_install_msi_log.txt
> [4]
> https://github.com/swift/swift/blob/master/Swift/Packaging/WiX/Swift.wxs#L13
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, 
> sponsored by Intel and developed in partnership with Slashdot Media, is your 
> hub for all things parallel software development, from weekly thought 
> leadership blogs to news, videos, case studies, tutorials and more. Take a 
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for all
> things parallel software development, from weekly thought leadership blogs to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to