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