我有多个安装程序(用于安装不同的应用程序和网站)的项目,都安装在同一个父文件夹下(例如\ Websites)。我的每个安装程序都会调用一个CustomAction来执行C#控制台应用程序(由所有安装程序共享),并传入特定于该安装程序的多个参数。如何枚举WiX中的子目录?
每个安装程序安装多个网站,每个网站都有自己的文件夹结构(例如\ Websites \ App1,\ Websites \ 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具有特定的文件夹列表的原因是因为它会遍历这些文件夹并执行大量自定义任务,而且我不希望它通过每个网站该父文件夹,但仅包含当前安装的一部分的网站文件夹。