This does help, thank you!  One caveat to this, the old installation has a
registry key named "Path" that contains the path to its installation
directory.  The settings folder is would be in a settings subdirectory of
this.  In the <CopyFile/> I cannot reference this like "[MYOLDVER]\settings"
since it violates the pattern of SourceProperty.  Also, I cannot set my
SourceName="settings\*.*" either because the '\' violates that property.
I'm sorry if I'm being obtuse about this, but do I need to set ANOTHER
property as well?  What would happen if I had this:

<Property Id="MYOLDVER">
     <RegistrySearch Id="OldPathSearch" Type="directory" Root="HKLM"
Key="whatever" Name="Path" />
</Property>

<Property Id="MYOLDSETTINGS" Value="[MYOLDVER]\Settings" />

Wouldn't my "MYOLDSETTINGS" property be set to "\Settings" if "MYOLDVER" was
empty?  I would try this, but I don't have an environment setup with this
yet.  Thanks for the help!


On 1/25/07, Lorne Laliberte <[EMAIL PROTECTED]> wrote:

You can actually put a <Condition> element inside your <Component
Id="CopyFileComponent"> element, and set its condition that way. The
condition will apply to the entire component, which in this case
contains your <CopyFile> element.

From the WiX docs: "Under a Component element, the condition becomes the
condition of the component."

What you want is something like this:

<Fragment>
  <DirectoryRef Id="MyDir">
    <Component Id="CopyFileComponent" ...>
      <CopyFile/> <!-- copy file elements here -->
      <Condition>MYOLDVER</Condition>
    </Component>
  </DirectoryRef>
</Fragment>

Hope that helps. :)

Lorne Laliberte
Indigo Rose Software


________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Levi
Wilson
        Sent: Thursday, January 25, 2007 9:50 AM
        To: wix-users@lists.sourceforge.net
        Subject: Re: [WiX-users] <CopyFile/> vs. CA


        I forgot to mention that both versions can coexist on the
machine.


        On 1/25/07, Levi Wilson <[EMAIL PROTECTED] > wrote:

                If I detect an older version of a product (via a
<RegistrySearch/> and set into "MYOLDVER") I would like to take settings
files installed for that version, and copy them into the newer version's
settings folder.  Would the best way be to do a CA to do this?  I saw
the <CopyFile/> element, but it doesn't appear that you can specify a
condition on this.  To use the copy file would I have to do this:

                <Fragment>
                  <DirectoryRef Id="MyDir">
                    <Component Id="CopyFileComponent" ...>
                      <CopyFile/> <!-- copy file elements here -->
                     </Component>
                  </DirectoryRef>
                </Fragment>

                And then in my <Feature /> tree put the condition like
this:

                <ComponentRef
Id="CopyFileComponent">MYOLDVER</ComponentRef>

                Is that correct?  Is there a better way to do this?
Thanks in advance.





-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to