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:[email protected]]
Sent: Friday, May 21, 2010 2:47 PM
To: [email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users