That is what the "Common" Program Files directory was created for <smile/>.
You use it similarly to the non-Common directory, except that components
shared between simultaneously installed products live there. Then there is
never any need to keep track of or even care about a COM object's
installation directory.

Do you build both Product A and Product B with the same (or at least
similar) builds of WiX? If so, your problem as you have designed it would
probably be easier to solve using WIXLIBs instead of MSMs.

Create a WixLib project (instead of a module) of Product A. Even better than
the registry search would be a component search to get the component's
installation directory, but a registry search can be used as well (as long
as you write the registry key). Place that search in the WixLib.

Create two WiX-MSI projects, one for A and the other for B. Both consume
(and depend on) the WixLib for A. The linker (which is not heavily involved
in the the incorporation of MSM content) will be able to arbitrate the
various actions needed between the different parts the installation much
more easily than the binder can, and you will also avoid the issues you are
seeing with trying to force the AppSearch from an MSM.

Blair

-----Original Message-----
From: Joost van Zoest [mailto:jzo...@siqura.com] 
Sent: Wednesday, February 01, 2012 5:11 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Visual C++ 2010 Merge Module

Hi Blair,

Thanks for your reply. Let me explain the reason why we're using the
registry search inside the MSM.
We have a product containing a COM object, let's call this product A. We
also have a product which is using the COM object of product A, let's call
this one product B. We've made both an installer and a MSM of product A. And
the installer of product B embeds the MSM of product A.
Then we released product B, and later decided to change the installation
directory for product A. When someone installs product B, the COM object is
registered in the old path. When he installs product A afterwards, the old
registration is overwritten with the new location of the product A binaries.
If he uninstalls product A, the registry gets corrupted because the COM
registration still points to the new location, while the binaries installed
by product B are located in the old location.

To overcome this problem, we wanted to let both the installer and MSM of
product A write a registry key containing the install directory. When either
the installer, or MSM, gets installed, it will first try to retrieve the
install directory from the registry to make sure it will install the
binaries to the same directory when the product is already installed. As it
seems, this registry search is not working very well inside the MSM.

Given our problem, does someone have an idea on how to deal with this?
We also thought about stopping using MSM's, but the disadvantage of
embedding the product A installer inside the product B installer is that
product A is not refcounted. So when product B gets uninstalled, it cannot
tell whether or not it should remove product A as well.

All ideas are appreciated! Thanks!


-----Original Message-----
From: Blair [mailto:os...@live.com]
Sent: Tuesday, January 31, 2012 4:38 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Visual C++ 2010 Merge Module


Several action don't seem to be intended to be found in MSMs. Maybe
AppSearch is one of them.

Do you distribute your MSM publically? If not, I've got a couple of
ideas.
1) Run a couple of SQL queries against the MSM to remove them from the
two Module*Sequence tables. 2) Change from using MSMs and instead
generate/consume WixLibs instead.

If you do distribute MSMs publically then each idea I have has
limitations.

-----Original Message-----
From: Joost van Zoest [mailto:jzo...@siqura.com]
Sent: Tuesday, January 31, 2012 6:41 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Visual C++ 2010 Merge Module

I've validated my MSM in Orca. At first, I got a lot of ICE33 warnings
because of some COM registration logic. To rule out that this was
causing my problems, I removed this registration logic and validated the
MSM again. Now the validation completes, but ends with:
Execution       ERROR   There is a problem with this Windows Installer
package. A DLL required for this install to complete could not be run.
Contact your support personnel or package vendor.  

I'm using Orca with the darice.cub of WIX 3.6 BETA

Looking further in Orca, I saw 2 tables (ModuleInstallExecuteSequence
and
ModuleInstallUISequence) which both contained an action called AppSearch
with a Sequence of 50. I guess the actions of these tables are moved to
the InstallExecuteSequence and InstallUISequence tables when you embed
this merge module into an installer. So could this be the cause of the
warnings I see when I build my installer?

Somewhere in my merge module I perform a registry search to get a
directory from the registry:
<Property Id="MYDIRECTORY">
  <RegistrySearch Id="REG_DirectorySearch" Type="raw"
    Root="HKLM" Key="Software\MyApplication" Name="InstallDir"/>
</Property> *MYDIRECTORY is the ID of a Directory element.

When I remove this registry search, the AppSearch actions are also
removed from the 2 tables. And I don't get the warnings anymore when I
build the installer containing this merge module. The original problem,
that a registry key was not written when you run the installer, is also
gone now.

Am I using the RegistrySearch in a correct way? Or is there another way
to fill the Directory element with a value from the registry?

This message contains confidential information and is intended only for the
individual named. If you are not the named addressee you should not
disseminate, distribute or copy this e-mail. Please notify the sender
immediately by e-mail if you have received this e-mail by mistake and delete
this e-mail from your system.


----------------------------------------------------------------------------
--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to