Создание папок в wix
Я хочу создать папку на диске C, а затем создать некоторые подпапки внутри этой папки в программе установки wix. Но эти папки не связаны с установленной папкой. . Моя программа хочет установить внутри папки AServiceSetup...но я хочу создать папку "PTLogFile" внутри диска C, а затем хочу создать некоторые подпапки внутри этой папки. Пожалуйста, помогите мне исправить мой код.Ниже приведен мой код
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="PTLogFile" Name="PTLogFile">
<Directory Id="Backups" Name="Backups"/>
<Directory Id="CommandLog" Name="CommandLog"/>
<Directory Id="EventLog" Name="EventLog"/>
<Directory Id="Responds" Name="Responds"/>
</Directory>
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="AServiceSetup">
</Directory>
</Directory>
</Directory>
</Fragment>
3 ответов
Спасибо за ваши ответы. Я получил ответ из вышеупомянутых ответов Структура каталогов следующим образом
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LogFile" Name="LogFile">
<Directory Id="Logs" Name="Logs">
<Directory Id="Log1" Name="Log1"/>
<Directory Id="Log2" Name="Log2"/>
<Directory Id="Log3" Name="Log3"/>
<Directory Id="Log4" Name="Log4"/>
</Directory>
</Directory>
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="AServiceSetup">
</Directory>
</Directory>
</Directory>
и компонент следующим образом
<Component Id="CreateLogFolders" Guid="....." Directory="LogFile" >
<CreateFolder Directory="LogFile" />
<CreateFolder Directory="Logs"/>
<CreateFolder Directory="Log1"/>
<CreateFolder Directory="Log2"/>
<CreateFolder Directory="Log3"/>
<CreateFolder Directory="Log4"/>
</Component>
и эта компонентная ссылка внутри характеристики продукта следующим образом
<ComponentRef Id="CreateLogFolders"/>
наконец, добавьте свойство внутри продукта следующим образом
<Property Id="LogFile" Value="C:" />
пока вы определили структуру каталогов, установщик будет создавать только каталоги, необходимые для компонентов.
простой вариант-добавить такой компонент, как:
<Component Id="CreateLogFolders" Directory="PTLogFile">
<CreateFolder Directory="PTLogFile" />
<CreateFolder Directory="Backups" />
<CreateFolder Directory="CommandLog" />
<CreateFolder Directory="EventLog" />
<CreateFolder Directory="Responds" />
</Component>
и ссылаться на этот компонент в одной из ваших функций.
вы бы предпочли разместить каждый <CreateFolder>
элемент, который приводит к записи в таблица CreateFolder, в своем собственном компоненте. В противном случае, я не уверен, что это хорошо соответствует правила составляющая...
сохранить структуру каталогов следующим образом:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="PTLogFile" Name="PTLogFile" />
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="AServiceSetup">
</Directory>
</Directory>
и автор компонента таким же образом, как это:
<DirectoryRef Id="PTLogFile">
<Directory Id="Backups">
<Component Id="..." Guid="...">
<CreateFolder />
</Component>
</Directory>
<Directory Id="CommandLog">
<Component Id="..." Guid="...">
<CreateFolder />
</Component>
</Directory>
<Directory Id="EventLog">
<Component Id="..." Guid="...">
<CreateFolder />
</Component>
</Directory>
<Directory Id="Responds">
<Component Id="..." Guid="...">
<CreateFolder />
</Component>
</Directory>
</DirectoryRef>