我有多個安裝程序(用於安裝不同的應用程序和網站)的項目,都安裝在同一個父文件夾下(例如\ 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具有特定的文件夾列表的原因是因爲它會遍歷這些文件夾並執行大量自定義任務,而且我不希望它通過每個網站該父文件夾,但僅包含當前安裝的一部分的網站文件夾。