У меня есть проекты с несколькими установщиками (для установки различных приложений и веб-сайтов), которые все устанавливаются под одной и той же родительской папкой (например, \ Веб-сайты). Каждый из моих инсталляторов вызывает CustomAction, который запускает консольное приложение C# (общее для всех установщиков), передавая несколько параметров, специфичных для этого установщика.Как перечислить дочерние каталоги в WiX?
Каждый установщик устанавливает несколько веб-сайтов, каждый со своей собственной структурой папок (например, \ Веб-сайты \ App1, \ Веб-сайты \ App2 и т. Д.).
Например, в одном инсталляторе:
<DirectoryRef Id="WebsitesFolder">
<Directory Id="App1Folder" Name="App1"/>
<Directory Id="App2Folder" Name="App2"/>
</DirectoryRef>
А в другой инсталлятор:
<DirectoryRef Id="WebsitesFolder">
<Directory Id="App3Folder" Name="App3"/>
<Directory Id="App4Folder" Name="App4"/>
<Directory Id="App5Folder" Name="App5"/>
<Directory Id="App6Folder" Name="App6"/>
</DirectoryRef>
Есть ли способ, чтобы перечислить список дочерних каталогов в список разделенных запятыми, чтобы пройти как аргумент в мое действие? Например, что-то вроде следующего.
<CustomAction Id="ConfigureWebsites" Directory="WebsitesFolder" ExeCommand=""[%DEPLOYEXE]" /d:"[WebsitesFolder]\<list child directories here>"" Execute="deferred" Return="ignore" />
Для получения следующего в одном инсталляторе:
deploy.exe /d:"C:\Websites\App1,C:\Websites\App2"
Во втором установщика:
deploy.exe /d:"C:\Websites\App3,C:\Websites\App4,C:\Websites\App5,C:\Websites\App6"
Я знаю, что могу просто явно перечислить все вложенные папки в моем CustomAction, но они растут проекты и вложенные папки добавляются к этим установщикам все время, или имена папок могут меняться со временем, и я не хочу поддерживать списки имен папок в нескольких местах.
Причина, по которой я хочу, чтобы мой файл deploy.exe имел определенный список папок, состоит в том, что он будет проходить через эти папки и выполнять множество пользовательских задач, и я не хочу, чтобы он проходил через каждый веб-сайт под это родительская папка, но только папки веб-сайтов, которые являются частью текущей установки.