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

Reply via email to