Blair,

Thanks for the explanation. Regarding your last paragraph about matching up 
GUIDs between installs.

"The only way that happens is by making the component guids match. And the
best way to do that is to not autogenerate them, or if you must autogenerate
them, use "*" as the component guid values so that the binder will produce
the component guid values in a stable way."

I am using "*" to generate the GUIDS in my WIX file. Obviously these are not 
matching the GUIDs created by Visual Studio in the Deployment Project .msi I am 
replacing, so I dumped the .msi using dark and realize I have a lot of typing 
to do to copy in each GUID.

The question is this. Is it worth the effort to copy all the GUIDs into the new 
installer? Considering that doing uninstall early in the process cleanly 
uninstalls the old version and correctly installs the new one, what advantages 
are gained? I am installing around 80 to 100 files.

At this point I am willing to do the RemoveExistingProducts 
After="InstallInitialize" as long as there are no problems lurking that will 
bite the process down the line.

Thanks for help.

Paul



-----Original Message-----
From: Blair [mailto:os...@live.com] 
Sent: Saturday, November 07, 2009 6:14 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Is this a GUID matching problem - how to resolve.

Each of your files that stay in the same directories need to have components
that keep the same guid values. If you don't drastically change your
installation layouts from build-to-build (which is most of us) it is
recommended that you write your installation once, and then update it on an
as-needed basis (instead of autogenerating it each time).

The reason mismatching the component guids causes what you are seeing is as
follows:

NewProduct (over)writes the files in the installation based on what Windows
Installer thinks are brand new components (the new guids). Then OldProduct
erases the files (ignoring what versions or timestamps they may have) when
removing the old components (since the components don't have any other
products using them). The repair rewrites the files (since they are missing)
and you are good to go (after the repair).

Here is what happens when you push up the scheduling of
RemoveExistingProducts:

OldProduct removes its registration of all the components it contains,
erasing all of the content for those components will no longer exist. Then
NewProduct registers itself for each component it contains and writes their
resources out to disk/registry, etc.

Here is what you want to happen:

NewProduct registers itself for each component it contains (making those
components have two products) and overwrites the files that have newer
version numbers (and possibly also overwriting those with the same version
numbers depending on the value of REINSTALLMODE) as well as dealing with
files that don't have FileVersion values as per the docs on MSDN. Then
OldProduct removes its registration of all the components it contains,
erasing the resources associated with any components that disappear as a
result (along with any keypaths that don't share the same value with another
product, including the one that just installed).

The only way that happens is by making the component guids match. And the
best way to do that is to not autogenerate them, or if you must autogenerate
them, use "*" as the component guid values so that the binder will produce
the component guid values in a stable way.

-----Original Message-----
From: Paul Brook [mailto:pbr...@vaytek.com] 
Sent: Saturday, November 07, 2009 3:09 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Is this a GUID matching problem - how to resolve.

I am building a WIX installer that will have to upgrade a Visual Studio
deployment project .msi. When I run the major upgrade installer it replaces
the entry in the Program and Features list OK but none of the files are left
after the RemoveExistingProducts Before="InstallFinalize" (tried both Before
or After). A repair gets the files installed.

I finally set it to RemoveExistingProducts After="InstallInitialize" and
that solved the problem but I am still wondering why the update didn't work.
The files in the upgrade all had newer time stamps but some had the same
version number although some did have newer version numbers.

Is this a component GUID mismatch problem? If so how can I get around it?
The Visual Studio version of the installer sequences the remove step just
before the finalize step and I wanted to continue to do that. I am
installing VC merge modules and their remove step follows the finalize step.

Best Regards

Paul
----------------------------------------------------------------------------
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus
on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to