I think I just learned something about <DirectorySearch>. The Depth
attribute means something different when there is a child <FileSearch>
element.

If there is no child <FileSearch> element, the Depth attribute means
"the number of levels below the parent <DirectorySearch> to look for
@Path."

If there is a child <FileSearch> element, the Depth attribute means
"the number of levels below @Path to look for the file."

In the latter case, the <DirectorySearch> element itself is assumed to
be have a
depth of 0, which is why something like this doesn't work:

<!-- Assume C:\Temp\a\b\c\d\e\f\foo.txt exists -->
<!-- This does not work :) -->
<Property Id="FOO_DOT_TEXT_1">
<DirectorySearch Depth='0' Id="dir_search_1" Path="C:\Temp" >
<DirectorySearch Depth='8' Id="dir_search_2" Path="f" >
<FileSearch Id="file_search_1" Name="foo.txt" />
</DirectorySearch>
</DirectorySearch>
</Property>

The Depth='8' isn't specifying the depth between dir_search_1 and
dir_search_2, it's specifying the depth between dir_search 2 and
file_search_1. The depth between dir_search_1 and dir_search_2 defaults
to
0, which is why it fails.

So it seems that, from a WiX user's perspective anyway, the
<DirectorySearch> Depth attribute applies to the number of levels
*above* @Path, unless a child FileSearch is used, at which point it
applies to the number of levels *below* @Path.

Is this correct?

- Lorne Laliberte

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to