Something like: <!-- Is host product installed? --> <Condition Message='[CONDITION_MSG_02]'>V1V2_DIR OR V3_DIR</Condition>
<!-- MIIS installation path--> <Property Id='V1V2_DIR'> <RegistrySearch Id='V1V2Registry' Type='raw' Root='HKLM' Key='SYSTEM\CurrentControlSet\Services\ProductAName\Parameters' Name='Path' /> </Property> <Property Id='V3_DIR'> <RegistrySearch Id ='V3Registry' Type ='raw' Root ='HKLM' Key ='SYSTEM\CurrentControlSet\Services\ProductBName\Parameters' Name='Path' /> </Property> <!-- Calculate product installation path--> <SetProperty Id="V1V2_DIR_COOKED" After="AppSearch" Value="[V1V2_DIR]">V1V2_DIR</SetProperty> <SetProperty Id="V3_DIR_COOKED" After="SetV1V2_DIR_COOKED" Value="[V3_DIR]">NOT V1V2_DIR</SetProperty> <SetProperty Id="PRODUCT_DIR" After="SetV3_DIR_COOKED" Value="[V1V2_DIR_COOKED][V3_DIR_COOKED]"/> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="PRODUCT_DIR"> <Directory Id='EXTENSIONSDIR' Name='Extensions'> ... -----Original Message----- From: Dmitry Kazantsev [mailto:dmi...@technoplex.net] Sent: Friday, May 21, 2010 2:47 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Dynamic installation path based on registry variable I am sure this is very trivial question nevertheless I was unable to find an example or any kind that would clearly illustrate how to change the install path based on the combination of conditions. I am trying to install a module that should work with several versions of the product X. Product X exist in several versions and changed its name over the time of its existence. The problem is that name change of the product also changed the registry key name which I was reliant on in the past. So now I need to check whether my user is about to install my add-on for product X on the system with an pre-renamed version (Registry Path A) or post-renamed version (Registry Path B)... Naturally I case search the registry for two separate location, what I can't figure out is how to supply end result to the child directory of the TARGETDIR? In the snippet of code that I've attached below I've marked the "problem" spot as " V1V2_DIR or V3_DIR"... Do I user some sort of the custom option? Can I use <?if?> statements? All I need is to express is something like this... IF V1V2_DIR != NullOrEmtry var.Something = V1V2_DIR ELSE var.Something=V3_DIR How do I do that? Thanks for your help! <!-- Is host product installed? --> <Condition Message='[CONDITION_MSG_02]'>V1V2_DIR OR V3_DIR</Condition> <!-- MIIS installation path--> <Property Id='V1V2_DIR'> <RegistrySearch Id='V1V2Registry' Type='raw' Root='HKLM' Key='SYSTEM\CurrentControlSet\Services\ProductAName\Parameters' Name='Path' /> </Property> <Property Id='V3_DIR'> <RegistrySearch Id ='V3Registry' Type ='raw' Root ='HKLM' Key ='SYSTEM\CurrentControlSet\Services\ProductBName\Parameters' Name='Path' /> </Property> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="V1V2_DIR or V3_DIR" Name='DirectoryNameGoesHere'> <Directory Id='EXTENSIONSDIR' Name='Extensions'> ... ---------------------------------------------------------------------------- -- _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users