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

Reply via email to